En este artículo, crearemos una macro para insertar un nuevo módulo en un libro de Excel.
Antes de ejecutar la macro, debemos especificar el tipo y el 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
Establecer 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 usa para obtener valor del cuadro de texto.
Siga a continuación para obtener el código
Opción Explícita Sub CreateNewModule (ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String) 'Declarando variables Dim ModuleComponent As VBComponent Dim WBook As Workbook' Creando objeto de libro activo Set WBook = ActiveWorkbook Set ModuleComponent = Nothing On Error Resume Next 'Adding new module Component Set ModuleComponent = WBook.VBProject.VBComponents.Add (ModuleTypeIndex) Si ModuleComponent no es nada, entonces 'Cambiar el nombre del nuevo módulo ModuleComponent.Name = NewModuleName End If On Error GoTo 0 Establecer ModuleComponent = Nothing End Sub Sub CallingProcedure ()' Declarar variables Dim ModuleTypeConst como Integer Dim ModuleName As String 'Obteniendo el valor del nombre del módulo y el tipo de módulo ModuleTypeConst = CInt (Range ("D12"). Value) ModuleName = Sheet1.TextBox2.Value' Llamando a CreateNewModule CreateNewModule ModuleTypeConst, ModuleName End Sub
Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico