42 プロシージャの変数の宣言行をリストアップする

「CodeModule」オブジェクトの「Lines」プロパティを使って、各行のコードからプロシージャの変数の宣言行を取り出す際のポイントは次の2点です。
  • コードが『Dim』が始まっている行を”変数の宣言行”と判定する

    → 下記では「LTrim(strCode) Like "Dim*"」

  • Declarationsセクションにも『Dim』が使われている可能性があるので、Linesプロパティで各行のコードの取り出すループでは、”Declarationsセクションより下のコードだけ”(Declarationsセクションの行数+1以降)をチェック対象とする

    → 下記では「 intRow = .CodeModule.CountOfDeclarationLines + 1 To .CodeModule.CountOfLines」
プログラム

Sub SampleCode_42()
'プロシージャの変数の宣言行をリストアップする

  Dim vbcmp As Object
  Dim intRow As Integer
  Dim strCode As String

  'VBEのすべてのモジュールのループ
  For Each vbcmp In VBE.ActiveVBProject.VBComponents
    With vbcmp
      'Declarationsセクションより下のすべてのコードを取り出すループ
      For intRow = .CodeModule.CountOfDeclarationLines + 1 To .CodeModule.CountOfLines
        strCode = .CodeModule.Lines(intRow, 1)
        If LTrim(strCode) Like "Dim*" Then
          'コードがDimで始まっていたらイミディエイトウィンドウに出力
          Debug.Print .Name & "(" & intRow & "): " & strCode
        End If
      Next intRow
    End With
  Next vbcmp

End Sub

実行例
■実行後
| Index | Prev | Next |



Copyright © T'sWare All rights reserved