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