VBEのモジュールを参照する(VBComponents コレクション)
VBComponents コレクション
VBComponents コレクションを使用するとコンポーネント(標準モジュール、クラスモジュール、ユーザーフォーム)の追加・削除を行ったり、参照したりすることが可能です。
object.VBComponents
引数・戻り値
- object ・・・ 対象となる VBProject オブジェクトを指定します。
 
VBProject プロパティを使用するには、事前に設定が必要です。詳細は、VBE をマクロで操作する時の設定(VBProject プロパティ、VBE プロパティ) を参照してください。
VBComponents の主なメソッド
VBComponents.Add メソッド
指定した種類のモジュールを追加します。VBComponents.Add メソッドは、VBComponent オブジェクトを返します。
object.Add ( component )
引数・戻り値
- object ・・・ 対象となる VBComponents オブジェクトを指定します。
 - component  ・・・  モジュールの種類を表す数値を指定します。
値 モジュールの種類 例 1 標準モジュール 「Module1」「Module2」など 2 クラスモジュール 「Class1」「Class2」など 3 ユーザーフォーム 「UserForm1」「UserForm2」など  
VBComponents.Remove メソッド
引数で指定したモジュールを開放(削除)します。
object.Remove ( vbcomponent )
引数・戻り値
- object ・・・ 対象となる VBComponents オブジェクトを指定します。
 - vbcomponent ・・・ 削除するモジュール(VBComponent 型)を指定します。
 
VBComponents.Import メソッド
エクスポートされたモジュール(ファイル)をインポートします。
object.Import ( filename )
引数・戻り値
- object ・・・ 対象となる VBComponents オブジェクトを指定します。
 - filename  ・・・  インポートするファイルのパスと名前を指定します。
・標準モジュール(.bas ファイル)
・クラスモジュール(.cls ファイル)
・ユーザーフォーム(.frm ファイル) 
VBComponents.Item メソッド
VBComponents コレクションから単一の VBComponent オブジェクトを取得します。
object[.Item]( index )
引数・戻り値
- object ・・・ 対象となる VBComponents オブジェクトを指定します。
 - index ・・・ 1 からはじまる整数値または、モジュール名(文字列)を指定します。
 
VBComponents.Itemの詳細に関しては、モジュールを操作する(VBComponent オブジェクト)を参照してください。
VBComponents の主なプロパティ
VBComponents.Count プロパティ
モジュール(標準モジュール、クラスモジュール、ユーザーフォーム、ドキュメントモジュール)の総数を取得します。
object.Count
引数・戻り値
- object ・・・ 対象となる VBComponents オブジェクトを指定します。
 
VBComponents 使用例
サンプルVBAソース
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63  | 
						Sub Sample_VBComponents()     Dim FileName As String     Dim w As Workbook     Dim v As Object     Dim stdm1 As Object     Dim stdm2 As Object     Dim stdm3 As Object     Dim str As String     FileName = "C:\Documents\test.xlsm"     'ブック(test.xlsm)をオープン     Set w = Workbooks.Open(FileName)     With w.VBProject         .VBE.Windows(1).SetFocus         '標準モジュール(Module1)を追加         Set stdm1 = .VBComponents.Add(1)         '標準モジュール(Module2)を追加         Set stdm2 = .VBComponents.Add(1)         '標準モジュール(Module3)を追加         Set stdm3 = .VBComponents.Add(1)         '標準モジュール(Module1)を削除         .VBComponents.Remove w.VBProject.VBComponents("Module1")         '標準モジュール(Module3)を削除         .VBComponents.Remove stdm3         'クラスモジュール(Class1.cls)をインポート         .VBComponents.Import ("c:\Documents\Class1.cls")         'ユーザーフォーム(UserForm1.frm)をインポート         .VBComponents.Import ("c:\Documents\UserForm1.frm")         'すべてのモジュール名を取得         For Each v In .VBComponents             str = str & v.Name & vbCrLf         Next v         'モジュールの数         str = str & "モジュールの総数:" & .VBComponents.Count     End With     w.Saved = True     w.Close     Set w = Nothing     'モジュール名表示     MsgBox str End Sub  | 
					
実行結果
関連記事
-  
            
              - 
      
VBEを操作する(VBProject プロパティ)
VBProject プロパティ 指定されたブックの VisualBasic プロ …
 
-  
            
              - 
      
ブックにマクロが含まれているか確認(HasVBProject プロパティ)
HasVBProject プロパティ ブックにマクロが含まれているかどうかを表す …
 
-  
            
              - 
      
モジュール内のコードを操作する(CodeModule のプロパティ)
CodeModule オブジェクト モジュール内のコードの追加、削除、編集等を行 …
 
-  
            
              - 
      
モジュール内のコードを操作する(CodeModule のメソッド)
CodeModule オブジェクト モジュール内のコードの追加、削除、編集等を行 …
 
-  
            
              - 
      
VBEのモジュールを参照する(VBComponent オブジェクト)
VBComponent オブジェクト VBComponent オブジェクトは、V …
 
-  
            
              - 
      
VBE をマクロで操作する時の設定(VBProject プロパティ、VBE プロパティ)
VBE をマクロで操作する時の設定について Excel 2002 以降のバージョ …
 
        