CodeModuleのAddFromStringメソッドを用いると、プログラムで作成した文字列をモジュールに追加することができます。但し、追加する場所は最初のプロシジャの直前だと決まっています。
① Visual Baisc プロジェクトへのアクセスを許可します。
② 「Microsoft Visual Basic for Application Extensibility」を参照設定します。
③ 下記サンプルコードは、アクティブなVBProjectの保存状態を調べて、メッセージボックスで通達するプロシジャです。
Option Explicit
Public Sub Sample_AddFromString_01()
' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
' 参照設定:
' 「Microsoft Visual Basic for Application Extensibility」
' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
' このブックのVBProjectをオブジェクト変数に格納する。
Dim Obj As VBIDE.VBProject
Set Obj = ThisWorkbook.VBProject
' 文字列に定数宣言文を作成する。
Dim str As String
str = "Private Const X As Long = 1"
' 文字列を"Module1"に追加します。
Obj.VBComponents("Module2") _
.CodeModule.AddFromString (str)
' オブジェクトを破棄する。
Set Obj = Nothing
End Sub
このサンプルコードを実行すると、Module2に”Private Const X As Long = 1″が追加されます。
コメントを残す