■ 最新の投稿

モジュールにVBAで作成したコードを追加する

CodeModuleのAddFromStringメソッドを用いると、プログラムで作成した文字列をモジュールに追加することができます。但し、追加する場所は最初のプロシジャの直前だと決まっています。

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

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″が追加されます。


Comments

コメントを残す

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