In dit artikel gaan we een macro maken om een nieuwe module in een Excel-werkmap in te voegen.
Voordat we de macro uitvoeren, moeten we het type en de naam van de module specificeren.
Zoals je kunt zien in de schermafbeelding, hebben we maar één module in de werkmap. In dit voorbeeld zullen we de klassenmodule aan de werkmap toevoegen.
Logische uitleg
In dit artikel hebben we twee macro's gemaakt, "CreateNewModule" en "CallingProcedure".
De macro "CreateNewModule" wordt gebruikt om een nieuwe module toe te voegen, afhankelijk van de ingevoerde invoer.
De macro "CallingProcedure" wordt gebruikt om de invoer te leveren en de hoofdmodule aan te roepen.
Code uitleg
Stel ModuleComponent = Wbook.VBProject.VBComponents.Add (ModuleTypeIndex) in
De bovenstaande code wordt gebruikt om een nieuwe module toe te voegen aan het VBA-project.
ModuleComponent.Name = NewModuleName
De bovenstaande code wordt gebruikt om de ingevoegde component te hernoemen.
ModuleTypeConst = Cint (Bereik ("D12"). Waarde)
De bovenstaande code wordt gebruikt om een geheel getal uit cel D12 te halen.
Modulenaam = Blad1.TextBox2.Waarde
De bovenstaande code wordt gebruikt om waarde uit het tekstvak te halen.
Volg hieronder voor de code:
Optie Expliciete Sub CreateNewModule(ByVal ModuleTypeIndex As Integer, ByVal NewModuleName As String) 'Variabelen dimmen ModuleComponent As VBComponent Dim WBook As Workbook 'Object van actieve werkmap maken Set WBook = ActiveWorkbook Set ModuleComponent = Nothing On Error Resume Next 'Toevoegen van nieuwe modulecomponent Set ModuleComponent = WBook.VBProject.VBComponents.Add (ModuleTypeIndex) If Not ModuleComponent Is Nothing Then 'De naam van de nieuwe module wijzigen 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 'Waarde van modulenaam en type module ophalen ModuleTypeConst = CInt(Range("D12").Value) ModuleName = Sheet1.TextBox2.Value 'Calling CreateNewModule CreateNewModule ModuleTypeConst, ModuleName End Sub
Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.
We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite