Lista alla moduler i VBA-projekt
Här demonstreras en teknik för att lista alla modulers namn och typ som ett VBA-projekt kan innehålla.
Glöm inte av att ange en referens "Microsoft Visual Basic for Applications Extensibility 5.3".
Option Explicit
Sub Lista_Alla_Moduler()
'© 2002 Alla rättigheter XL-Dennis
Dim vbaProjekt As VBIDE.VBProject
Dim vbaModul As VBIDE.VBComponent
Dim i As Long
Set vbaProjekt = ThisWorkbook.VBProject
i = 1
Range("A1:B1").Value = Array("Modulnamn", "Typ")
For Each vbaModul In vbaProjekt.VBComponents
i = i + 1
With vbaModul
'Här skrivs respektive moduls namn ut i det
'aktiva arbetsbladet
Cells(i, 1).Value = .Name
'Det finns 4 olika typer av moduler, vilka beaktas
'i följande kod.
Select Case .Type
Case 1
Cells(i, 2).Value = "Standardmodul"
Case 2
Cells(i, 2).Value = "Klassmodul"
Case 3
Cells(i, 2).Value = "Formulär"
Case 100
'Både arbetsbok-, arbetsblad- och diagrambladmodul kategoriseras till 100.
'För att ta hänsyn till ThisWorkbook och DennaArbetsbok
'används jänmförelseuttrycket "*ok*"
If LCase(.Name) Like "*ok*" Then
Cells(i, 2).Value = "Arbetsbokmodul"
ElseIf LCase(.Name) Like "*blad*" Then
Cells(i, 2).Value = "Arbetsbladmodul"
Else
Cells(i, 2).Value = "Diagrammodul"
End If
End Select
End With
Next vbaModul
Columns("A:B").EntireColumn.AutoFit
End Sub