CodeModuleオブジェクトでよく使われるメソッドを解説します。
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メソッドは、指定した行に、指定した文字列を挿入します。書式は次の通りです。
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
の状態で実行すると、
となります。