Dokumentera moduler

Här visas hur vi kan skapa en slags dokumentation över en moduls egenskaper. Det är dessa egenskaper som visas i fönstret för egenskaper. För klass- och standardmoduler är antalet egenskaper få varför denna typ av dokumentation saknar relevans för dessa modultyper.

Glöm inte av att ange en referens "Microsoft Visual Basic for Applications Extensibility 5.3".

 

Sub VBAModul_Dokumentation()

   '© 2002 Alla rättigheter XL-Dennis

   Dim vbaProjekt As VBProject

   Dim vbaModul As VBComponent

   Dim prpModul As Property

   Dim vaItem As Variant

   Dim blFlagga As Boolean

   Dim i As Long, j As Long

   Set vbaProjekt = ThisWorkbook.VBProject

   'Här anges vilken modul som ska dokumenteras.

   Set vbaModul = vbaProjekt.VBComponents("ThisWorkbook")


  
On Error GoTo Felhantering

   i = 1

   j = 2

   For Each prpModul In vbaModul.Properties

      i = i + 1

      With prpModul

         Cells(i, 1).Value = .Name

         'Sätter en flagga för att markera att vi försöker

         'läsa ett värde.

         blFlagga = True

         If .NumIndices > 0 Then

            Cells(i, 2).Value = "Index: " & .NumIndices

         ElseIf IsObject(.Value) Then

            Cells(i, 2).Value = "<Objekt (" & TypeName(prpModul.Object) & ")>"

         ElseIf IsArray(.Value) Then

            For Each vaItem In .Value

               j = j + 1

               Cells(i, j).Value = vaItem

            Next

         Else

            Cells(i, 2).Value = prpModul.Value

         End If

         blFlagga = False

      End With

Nasta:

Next

Columns("A:D").EntireColumn.AutoFit

 

Avsluta:

   Exit Sub

Felhantering:

   If blFlagga Then

      Cells(i, 4).Value = "<Fel " & Err.Number & " :" & Err.Description & ">"

      Resume Nasta

   Else

      MsgBox Err.Description, vbExclamation, "Fel " & Err.Number

      Resume Avsluta

   End If

End Sub