17

現在、VBA Extensibility を使用して Excel ワークブックに VBA 機能を追加する VBA コード ジェネレーター/インジェクターに取り組んでいます。これはすべてうまくいきます。

ただし、挿入される元のコードは条件付きコンパイルを使用し、いくつかのグローバルな条件付きコンパイル引数を参照します。

ここに画像の説明を入力

VBA プロジェクトの条件付きコンパイル引数をプログラムで変更/追加する方法はありますか?

VBProject のすべてのプロパティを確認しましたが、何も見つかりませんでした。

4

4 に答える 4

5

そのダイアログ ボックス内の何かに影響を与える唯一の方法は、SendMessageAPI 関数を使用することApplication.SendKeysです。次のように、コードで定数を宣言する方がよいでしょう。

#Const PACKAGE_1 = 0

次に、コードCodeModuleですべての VBA コンポーネントを変更します。

Dim comp As VBComponent
For Each comp In ThisWorkbook.VBProject.VBComponents
    With comp.CodeModule
        Dim i As Long
        For i = 1 To .CountOfLines
            If Left$(.Lines(i, 1), 18) = "#Const PACKAGE_1 =" Then
                .ReplaceLine i, "#Const PACKAGE_1 = 1"
            End If
        Next i
    End With
Next comp
于 2013-11-01T17:05:24.870 に答える