In questo articolo creeremo una macro per inserire un nuovo modulo in una cartella di lavoro di Excel.

Prima di eseguire la macro, dobbiamo specificare il tipo e il nome del modulo.

ArrowMain

ArrowRaw

Come si può vedere nello screenshot, abbiamo solo un modulo nella cartella di lavoro. In questo esempio, aggiungeremo il modulo di classe alla cartella di lavoro.

ArrowOutput

Spiegazione logica

In questo articolo, abbiamo creato due macro, “CreateNewModule” e “CallingProcedure”.

La macro “CreateNewModule” viene utilizzata per aggiungere un nuovo modulo, a seconda dell’input fornito.

La macro “CallingProcedure” viene utilizzata per fornire l’input e chiamare il modulo principale.

Spiegazione del codice

Set ModuleComponent = Wbook.VBProject.VBComponents.Add (ModuleTypeIndex)

Il codice sopra viene utilizzato per aggiungere un nuovo modulo nel progetto VBA.

ModuleComponent.Name = NewModuleName Il codice precedente viene utilizzato per rinominare il componente inserito.

ModuleTypeConst = Cint (Range (“D12”). Value)

Il codice sopra viene utilizzato per ottenere il valore intero dalla cella D12.

ModuleName = Sheet1.TextBox2.Value Il codice precedente viene utilizzato per ottenere il valore dalla casella di testo.

Segui sotto per il codice

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

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]