CodeModuleのメソッド


CodeModuleオブジェクトでよく使われるメソッドを解説します。

AddFromFileメソッド・AddFromStringメソッド

AddFromFileメソッドは、指定したファイルの内容を、コードモジュールに挿入します。挿入される位置は、最初のプロシージャの直前です。挿入される位置を指定することはできません。

ここでは、C:\Work\Macro.txtに次のようなデータが保存されているとします。

Sub Sample15()
    With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        .AddFromFile "C:\Work\Macro.txt"
    End With
End Sub

の状態で実行すると、

となります。

AddFromStringメソッドは、指定した文字列を、コードモジュールに挿入します。挿入される位置はAddFromFileメソッドと同じです。

Sub Sample16()
    With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        .AddFromString "Public buf As String"
    End With
End Sub

の状態で実行すると、

となります。

InsertLinesメソッド・DeleteLinesメソッド・ReplaceLineメソッド

InsertLinesメソッドは、指定した行に、指定した文字列を挿入します。書式は次の通りです。

CodeModule.InsertLines(line, code)

引数lineには、挿入する行を指定します。

引数codeには、挿入する文字列を指定します。

Sub Sample17()
    With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        .InsertLines 7, vbTab & "Debug.Print Now()"
    End With
End Sub

の状態で実行すると、

となります。

DeleteLinesメソッドは、指定した行を削除します。書式は次の通りです。

CodeModule.DeleteLines (startline [, count])

引数startlineには、削除する先頭行を指定します。

引数countは省略可能です。削除する行数を指定します。省略した場合は、引数startlineで指定した行が、1行だけ削除されます。

上記Sample17で挿入した行「Debug.Print Now()」を削除するには次のようにします。

Sub Sample17()
    With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        .DeleteLines 7
    End With
    Debug.Print Now()
End Sub

ReplaceLineメソッドは、指定した行を、指定した文字列で置換します。書式は次の通りです。

CodeModule.ReplaceLine(line, code)

引数lineには、置換する行を指定します。複数行を指定することはできません。

引数codeには、置換する文字列を指定します。

Sub Sample17()
    With ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
        .ReplaceLine 7, vbTab & "'この行はコメントです"
    End With
    Debug.Print Now()
End Sub

の状態で実行すると、

となります。