Cree un nuevo módulo usando VBA en Microsoft Excel

Anonim

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