Lägga till och ta bort moduler
Här visas tekniker för att lägga till respektive ta bort moduler från arbetsböcker. Det är viktigt att ha i åtanke att den eller de arbetsböcker som berörs måste vara öppna när någon av procedurerna exekveras.
Glöm inte av att ange en referens "Microsoft Visual Basic for Applications Extensibility 5.3".
Lägga till ModulerFöljande procedur visar hur vi lägger till moduler. Vi kan inte via VBE lägga till nya arbetsblad. I koden används de konstanta benämningarna för de olika modultyperna.
Sub Lägga_Till_Moduler()
'© 2002 Alla rättigheter XL-Dennis
Dim vbaProjekt As VBIDE.VBProject
Dim vbaModul As VBIDE.VBComponent
Application.VBE.MainWindow.Visible = False
Set vbaProjekt = ThisWorkbook.VBProject
With vbaProjekt.VBComponents
'Standardmodul
.Add vbext_ct_StdModule
'Klassmodul
.Add vbext_ct_ClassModule
'Formulär
.Add vbext_ct_MSForm
End With
Application.VBE.MainWindow.Visible = True
End Sub
Ta bort moduler
Att ta bort moduler är också relativt enkelt. Dock måste vi förstå att vi varken kan ta bort kodmoduler för diagramblad, arbetsblad eller för ThisWorkbook/DennaArbetsbok. Den sistnämnda kan överhuvudtaget inte tas bort.
Sub TaBort_Standardmodul()
'© 2002 Alla rättigheter XL-Dennis
Dim vbaProjekt As VBIDE.VBProject
Dim stModul As String
Set vbaProjekt = ThisWorkbook.VBProject
'För klass-, standardmoduler och formulär.
stModul = "Modul2"
With vbaProjekt.VBComponents
.Remove VBComponent:=.Item(stModul)
End With
End Sub
Ta bort alla moduler
Här visas hur vi kan ta bort alla moduler i en arbetsbok. Proceduren tar även bort sig själv varför den inte bör testas på viktiga arbetsböcker. Som angivits ovan kan vissa typer av moduler inte tas bort.
Sub TaBort_Alla_moduler()
'© 2002 Alla rättigheter XL-Dennis
Dim vbaModuler As VBIDE.VBComponents
Dim vbaModul As VBIDE.VBComponent
Set vbaModuler = ThisWorkbook.VBProject.VBComponents
For Each vbaModul In vbaModuler
If vbaModul.Type <> 100 Then
vbaModuler.Remove vbaModul
End If
Next vbaModul
End Sub