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.

ArrowMain

ArrowRaw

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.

ArrowOutput

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]