VBEのモジュールを参照する(VBComponent オブジェクト)
2016/01/25
VBComponent オブジェクト
VBComponent オブジェクトは、VBProject に含まれる各モジュール(標準モジュール、クラスモジュール、ドキュメントモジュール、ユーザーフォームなど)を表します。
<取得>
object.VBComponents[.Item ] ( index )
引数・戻り値
- object ・・・ 対象となる VBProject オブジェクトを指定します。
- index ・・・ 1 からはじまる整数値または、モジュール名(文字列)を指定します。
VBProject プロパティを使用するには、事前に設定が必要です。詳細は、VBE をマクロで操作する時の設定(VBProject プロパティ、VBE プロパティ) を参照してください。
VBComponent の主なプロパティ
VBComponent.Name プロパティ
object で指定したモジュールの名前を取得および設定します。
<取得>
result = object.Name
<設定>
object.Name = string
引数・戻り値
- object ・・・ 対象となる VBComponent オブジェクトを指定します。
- string ・・・ 変更するモジュール名(文字列)を指定します。
- result ・・・ 取得したモジュール名。
VBComponent.Type プロパティ
object で指定したモジュールの種類を取得します。
object.Type
引数・戻り値
- object ・・・ 対象となる VBComponent オブジェクトを指定します。
- 戻り値 ・・・ モジュールの種類を表す整数値。
値 モジュールの種類 例 1 標準モジュール 「Module1」「Module2」など 2 クラスモジュール 「Class1」「Class2」など 3 ユーザーフォーム 「UserForm1」「UserForm2」など 11 ActiveX デザイナ 通常は使いません 100 オブジェクトモジュール 「ThisWorkbook」「Sheet1」など
VBComponent.CodeModule プロパティ
モジュールに記述されているマクロのコードを表すオブジェクトを取得します。
<取得>
object.CodeModule
引数・戻り値
- object ・・・ 対象となる VBComponent オブジェクトを指定します。
CodeModule オブジェクト のプロパティ・メソッドの詳細は、モジュール内のコードを操作する(CodeModule プロパティ)、モジュール内のコードを操作する(CodeModule メソッド)を参照してください。
VBComponent の主なメソッド
VBComponent.Activate メソッド
object で指定したモジュールを アクティブ にします。
object.Activate
引数・戻り値
- object ・・・ 対象となる VBComponent オブジェクトを指定します。
VBComponent.Export メソッド
object で指定したモジュールを エクスポートします。
object.Export filename
引数・戻り値
- object ・・・ 対象となる VBComponent オブジェクトを指定します。
- filename ・・・ object で指定したモジュールをエクスポートする時のファイル名(パス含む)を指定します。
手動で、エクスポートする場合の拡張子は以下のとおりです。モジュール 拡張子 標準モジュール .bas クラスモジュール .cls ユーザーフォーム .frm ドキュメントモジュール .cls
VBComponent 使用例
サンプル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 64 65 |
Sub Sample_VBComponent() Dim FileName As String Dim w As Workbook Dim i As Integer Dim stdm1 As Object Dim stdm2 As Object Dim clsm1 As Object Dim str As String FileName = "C:\Documents\test.xlsm" 'ブック(test.xlsm)をオープン Set w = Workbooks.Open(FileName) With w.VBProject.VBComponents '標準モジュール(Module1)を追加 Set stdm1 = .Add(1) '標準モジュール(Module2)を追加 Set stdm2 = .Add(1) 'クラスモジュール(Class1)を追加 Set clsm1 = .Add(2) '標準モジュール(Module1)をリネーム(NewMod) .Item("Module1").Name = "NewMod" 'クラスモジュール(Class1)をリネーム(NewCls) .Item("Class1").Name = "NewCls" 'リネームした標準モジュールをエクスポート .Item("NewMod").Export "C:\Documents\ext\NewMod.bas" 'リネームしたクラスモジュールをエクスポート .Item("NewCls").Export "C:\Documents\ext\NewCls.cls" '別のクラスモジュール(Class1.cls)をインポート .Import ("c:\Documents\Class1.cls") 'ユーザーフォーム(UserForm1.frm)をインポート .Import ("c:\Documents\UserForm1.frm") 'すべてのモジュール名とその種類を取得 For i = 1 To .Count str = str & .Item(i).Name & "(" & .Item(i).Type & ")" & vbCrLf Next i End With w.Saved = True w.Close Set w = Nothing 'モジュール名と種類を表示 MsgBox str End Sub |
実行結果
エクスポートしたファイル(標準モジュールとクラスモジュール)
関連記事
-
モジュール内のコードを操作する(CodeModule のメソッド)
CodeModule オブジェクト モジュール内のコードの追加、削除、編集等を行 …
-
ブックにマクロが含まれているか確認(HasVBProject プロパティ)
HasVBProject プロパティ ブックにマクロが含まれているかどうかを表す …
-
モジュール内のコードを操作する(CodeModule のプロパティ)
CodeModule オブジェクト モジュール内のコードの追加、削除、編集等を行 …
-
VBEのモジュールを参照する(VBComponents コレクション)
VBComponents コレクション VBComponents コレクションを …
-
VBE をマクロで操作する時の設定(VBProject プロパティ、VBE プロパティ)
VBE をマクロで操作する時の設定について Excel 2002 以降のバージョ …
-
VBEを操作する(VBProject プロパティ)
VBProject プロパティ 指定されたブックの VisualBasic プロ …