トップページ >
Excel >
VBA >
VBAでVBEを操作する >
VBComponentの操作
VBComponentの操作
VBComponentオブジェクトは、VBProjectに含まれる標準モジュールや、UserForm、Sheet1やThisWorkbookなどのドキュメントモジュールなどを表します。ここでは、アクティブブックに次のようなコンポーネントが含まれていたとします。
次のコードは、アクティブブックに含まれるコンポーネントの情報をセルに入力します。
Sub Sample3()
Dim i As Long
With ActiveWorkbook.VBProject
For i = 1 To .VBComponents.Count
Cells(i, 1) = .VBComponents(i).Name
Cells(i, 2) = .VBComponents(i).Type
Next i
End With
End Sub
VBComponentオブジェクトのTypeプロパティは、次のような値を返します。
| 値 | 内容 | | 1 | 標準モジュール | | 2 | クラス モジュール | | 3 | Microsoft Form | | 11 | ActiveX デザイナ | | 100 | Document モジュール |
|
次のコードは、アクティブブックに含まれている標準モジュールを調べます。
Sub Sample4()
Dim i As Long, buf As String, mdlName As String
With ActiveWorkbook.VBProject
For i = 1 To .VBComponents.Count
If .VBComponents(i).Type = 1 Then
mdlName = mdlName & .VBComponents(i).Name & vbCrLf
End If
Next i
If mdlName <> "" Then
MsgBox "次の標準モジュールが含まれています" & vbCrLf & mdlName
Else
MsgBox "標準モジュールは含まれていません"
End If
End With
End Sub
VBComponentsコレクションのAddメソッドを使うと、VBProjectにコンポーネントを追加できます。このとき、Addメソッドの引数に次の数値を指定して、追加するコンポーネントの種類を特定できます。
| 値 | 内容 | | 1 | 標準モジュール | | 2 | クラス モジュール | | 3 | Microsoft Form |
|
次のコードは、アクティブブックに標準モジュールが含まれていない場合は、新しい標準モジュールを追加します。
Sub Sample5()
Dim i As Long, flag As Boolean
With ActiveWorkbook.VBProject
For i = 1 To .VBComponents.Count
If .VBComponents(i).Type = 1 Then
flag = True
Exit For
End If
Next i
If Not flag Then .VBComponents.Add 1
End With
End Sub
コンポーネントをファイルにエクスポートするときはVBComponentオブジェクトのExportメソッドを使います。また、外部のファイルをインポートするには、VBComponentsコレクションのImportメソッドを使います。
次のコードは、Book1のModule1を「C:\Work\Book1_Module.bas」という名前でエクスポートします。続いてBook2に、エクスポートした「C:\Work\Book1_Module.bas」をインポートします。Book1とBook2を開いた状態で実行してください。
Sub Sample6()
Const Filename As String = "C:\Work\Book1_Module.bas"
Workbooks("Book1.xls").VBProject.VBComponents("Module1").Export Filename
Workbooks("Book2.xls").VBProject.VBComponents.Import Filename
End Sub
[目次]へ戻る