Erstellen Sie ein neues Modul mit VBA in Microsoft Excel

Anonim

In diesem Artikel erstellen wir ein Makro zum Einfügen eines neuen Moduls in eine Excel-Arbeitsmappe.

Bevor wir das Makro ausführen, müssen wir den Typ und den Namen des Moduls angeben.

Wie auf dem Screenshot zu sehen ist, haben wir nur ein Modul in der Arbeitsmappe. In diesem Beispiel fügen wir der Arbeitsmappe ein Klassenmodul hinzu.

Logikerklärung

In diesem Artikel haben wir zwei Makros erstellt, „CreateNewModule“ und „CallingProcedure“.

Das Makro „CreateNewModule“ wird verwendet, um ein neues Modul hinzuzufügen, abhängig von der bereitgestellten Eingabe.

Das Makro „CallingProcedure“ wird verwendet, um die Eingabe bereitzustellen und das Hauptmodul aufzurufen.

Codeerklärung

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

Der obige Code wird verwendet, um ein neues Modul im VBA-Projekt hinzuzufügen.

ModuleComponent.Name = NewModuleName

Der obige Code wird verwendet, um die eingefügte Komponente umzubenennen.

ModuleTypeConst = Cint(Range("D12").Value)

Der obige Code wird verwendet, um einen ganzzahligen Wert aus Zelle D12 zu erhalten.

Modulname = Sheet1.TextBox2.Value

Der obige Code wird verwendet, um den Wert aus dem Textfeld zu erhalten.

Bitte folgen Sie unten für den Code

 Option Explicit Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String) 'Variablen deklarieren Dim ModuleComponent As VBComponent Dim WBook As Workbook 'Objekt der aktiven Arbeitsmappe erstellen Set WBook = ActiveWorkbook Set ModuleComponent = Nothing On Error Resume Next 'Add new module components Set ModuleComponent = WBook.VBProject.VBComponents.Add(ModuleTypeIndex) If Not ModuleComponent Is Nothing Then 'Umbenennen des neuen Moduls ModuleComponent.Name = NewModuleName End If On Error GoTo 0 Set ModuleComponent = Nothing End Sub Sub CallingProcedure() 'Variablen deklarieren Dim ModuleTypeConst As Integer Dim ModuleName As String 'Wert des Modulnamens und des Modultyps abrufen ModuleTypeConst = CInt(Range("D12").Value) ModuleName = Sheet1.TextBox2.Value 'Calling CreateNewModule CreateNewModule ModuleTypeConst, ModuleName End Sub 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site