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 プロ …
-
モジュール内のコードを操作する(CodeModule のメソッド)
CodeModule オブジェクト モジュール内のコードの追加、削除、編集等を行 …
-
モジュール内のコードを操作する(CodeModule のプロパティ)
CodeModule オブジェクト モジュール内のコードの追加、削除、編集等を行 …
-
ブックにマクロが含まれているか確認(HasVBProject プロパティ)
HasVBProject プロパティ ブックにマクロが含まれているかどうかを表す …
-
VBEのモジュールを参照する(VBComponent オブジェクト)
VBComponent オブジェクト VBComponent オブジェクトは、V …
-
VBE をマクロで操作する時の設定(VBProject プロパティ、VBE プロパティ)
VBE をマクロで操作する時の設定について Excel 2002 以降のバージョ …