■ 最新の投稿

VBAのプロシジャの行数を調べる

CodeModuleのProcCountLinesプロパティを用いると、プロシジャがモジュール内の何行を占めているか調べることができます。

① Visual Baisc プロジェクトへのアクセスを許可します。

Visual Baisc プロジェクトへのアクセスを許可する方法

② 「Microsoft Visual Basic for Application Extensibility」を参照設定します。

③ 次のプログラムコードを記載します。

Option Explicit

Public Sub Sample_ProcCountLines_01()

    ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ' 参照設定:
    ' 「Microsoft Visual Basic for Application Extensibility」
    ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    
    ' このブックのVBProjectをオブジェクト変数に格納する。
    Dim Obj As VBIDE.VBProject
    Set Obj = ThisWorkbook.VBProject

    ' ProcCountLinesプロパティを用いて、"Proc2"のコードが何行あるか調べる。
    Dim rowCnt As Long
    rowCnt = Obj.VBComponents("Module1") _
        .CodeModule.ProcCountLines("Proc2", vbext_pk_Proc)
    MsgBox rowCnt

    ' オブジェクトを破棄する。
    Set Obj = Nothing

End Sub

' *
' * Proc1 引数無し
' *
Private Sub Proc1()
    MsgBox "I'm Private Sub Proc1"
End Sub

' *
' * Proc2 引数無し
' *
Private Sub Proc2()
    MsgBox "I'm Private Sub Proc2"
End Sub

' *
' * Proc3 引数無し
' *
Private Sub Proc3()
    MsgBox "I'm Private Sub Proc3"
End Sub

このサンプルコードを実行すると、以下のメッセージボックスが表示されます。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です