Crear un nuevo módulo utilizando VBA en Microsoft Excel
En este artículo, crearemos una macro para insertar un nuevo módulo en un libro de Excel.
Antes de ejecutar la macro, necesitamos especificar el tipo y nombre del módulo.
Como se puede ver en la captura de pantalla, solo tenemos un módulo en el libro de trabajo. En este ejemplo, agregaremos el módulo de clase al libro de trabajo.
Explicación lógica
En este artículo, hemos creado dos macros, «CreateNewModule» y «CallingProcedure».
La macro «CreateNewModule» se usa para agregar un nuevo módulo, dependiendo de la entrada proporcionada.
La macro «CallingProcedure» se utiliza para proporcionar la entrada y llamar al módulo principal.
Explicación del código
Establezca ModuleComponent = Wbook.VBProject.VBComponents.Add (ModuleTypeIndex)
El código anterior se usa para agregar un nuevo módulo en el proyecto VBA.
ModuleComponent.Name = NewModuleName El código anterior se utiliza para cambiar el nombre del componente insertado.
ModuleTypeConst = Cint (Rango («D12»). Valor)
El código anterior se usa para obtener un valor entero de la celda D12.
ModuleName = Sheet1.TextBox2.Value El código anterior se utiliza para obtener el valor del cuadro de texto.
Siga el código a continuación
Option Explicit Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String) 'Declaring variables Dim ModuleComponent As VBComponent Dim WBook As Workbook 'Creating object of active workbook Set WBook = ActiveWorkbook Set ModuleComponent = Nothing On Error Resume Next 'Adding new module component Set ModuleComponent = WBook.VBProject.VBComponents.Add(ModuleTypeIndex) If Not ModuleComponent Is Nothing Then 'Renaming the new module ModuleComponent.Name = NewModuleName End If On Error GoTo 0 Set ModuleComponent = Nothing End Sub Sub CallingProcedure() 'Declare variables Dim ModuleTypeConst As Integer Dim ModuleName As String 'Getting value of module name and type of module ModuleTypeConst = CInt(Range("D12").Value) ModuleName = Sheet1.TextBox2.Value 'Calling CreateNewModule CreateNewModule ModuleTypeConst, ModuleName End Sub
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]