
Excelブックに存在するモジュールの行数をVBAにて調べる方法を紹介します。

以下のようにVBAProjectにモジュールを含むExcelブックを想定します。

① Visual Baisc プロジェクトへのアクセスを許可します。
② 「Microsoft Visual Basic for Application Extensibility」を参照設定します。

③ 次のプログラムコードを記載します。
Public Sub Sample_MakeModuleLines_01()
' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
' 参照設定:
' 「Microsoft Visual Basic for Application Extensibility」
' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
' このブックのVBProjectをオブジェクト変数に格納する。
Dim Obj As VBIDE.VBProject
Set Obj = ThisWorkbook.VBProject
' VBProjectに存在するコンポーネント数を変数に格納する。
Dim CompCnt As Long
CompCnt = Obj.VBComponents.Count
' VBProjectに存在するコンポーネントを一つずつ参照する。
Dim lp As Long
For lp = 1 To CompCnt
With Range("A1")
.Offset(lp - 1, 0).Value = Obj.VBComponents(lp).Name
.Offset(lp - 1, 1).Value = Obj.VBComponents(lp).Type
.Offset(lp - 1, 2).Value = Obj.VBComponents(lp) _
.CodeModule.CountOfLines
End With
Next
' オブジェクトを破棄する。
Set Obj = Nothing
End Sub
このVBAを実行すると、以下の結果が得られます。




コメントを残す