Excelスキルアップコレクション
           〜 Something U Want 〜


Google  

WWW を検索
Excelスキルアップコレクション内 を検索
 @     Top  >     Excelプロフェッショナルエンジニアテクニック Topics  >     (17) モジュールにVBAで作成したコードを追加する

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

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

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

  「(04) Visual Baisc プロジェクトへのアクセスを許可する方法」

 ここで利用するのはAddFromStringメソッドです。プロシジャの先頭にコードを追加します。
AddFromString(文字列名){文字列}に記載されている内容をモジュールに追加する追加位置は最初のプロシジャの直前

 下記サンプルコードをModule1に記載して下さい。VBAで作成した文字列をModule2に追加する例です。
<Module1>

 1行目:  Option Explicit
 2行目:  
 3行目:  Public Sub Sample_AddFromString_01()
 4行目:  
 5行目:      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 6行目:      ' 参照設定:
 7行目:      ' 「Microsoft Visual Basic for Application Extensibility」
 8行目:      ' ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
 9行目:      ' このブックのVBProjectをオブジェクト変数に格納する。
10行目:      Dim Obj As VBIDE.VBProject
11行目:      Set Obj = ThisWorkbook.VBProject
12行目:  
13行目:      ' 文字列に定数宣言文を作成する。
14行目:      Dim str As String
15行目:      str = "Private Const X As Long = 1"
16行目:  
17行目:      ' 文字列を"Module1"に追加します。
18行目:      Obj.VBComponents("Module2") _
19行目:          .CodeModule.AddFromString (str)
20行目:  
21行目:      ' オブジェクトを破棄する。
22行目:      Set Obj = Nothing
23行目:  
24行目:  End Sub
 このサンプルコードを実行すると、Module2に"Private Const X As Long = 1"が追加されます。
<実行前>
<実行後>
ページの先頭へ