次の方法で共有


Visual Basic Editor 用の COM アドインを作成する

Microsoft Office 2000/Visual Basic プログラマーズ ガイド   

Visual Basic Editor を使用して COM アドインを作成する方法は、さまざまな意味で Office 2000 アプリケーションで COM アドインを作成する方法に似ています。Visual Basic Editor 用の COM アドインにも、アドイン デザイナまたは IDTExtensibility2 ライブラリをインプリメントするクラス モジュールのどちらかが含まれています。COM アドイン テンプレート プロジェクトを使用して作業を開始します。

注意すべき相違点は、Visual Basic Editor 用の COM アドインに対する既定のロード方法の設定が、Office アプリケーション用の COM アドインに対する設定とは異なる点です。Visual Basic Editor 用の COM アドインには、既定のロード方法として [None] (ユーザーがロードするまでアドインはロードされない)、または [Startup] (ユーザーが Visual Basic Editor を開いたときにアドインがロードされる) のいずれかを設定することができます。

Visual Basic 6.0 Visual Basic Editor 用の COM アドインを作成するには

  1. 新しい COM アドイン プロジェクトを作成し、アドイン デザイナを変更して、[アプリケーション] ボックスを [Visual Basic for Applications IDE] に、[アプリケーション バージョン] ボックスを [6.0] に設定します。アドインの既定のロード方法を [None] または [Startup] に設定します。

  2. Microsoft Visual Basic for Applications Extensibility 5.3 ライブラリへの参照を設定します。このオブジェクト ライブラリは Vbe6ext.olb ファイルに含まれています。オブジェクト ライブラリが参照可能なライブラリ ファイルのリストに表示されない場合は、既定で C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6 にインストールされています。オブジェクト ブラウザに表示されるライブラリ名は VBIDE です。

  3. この章の「IDTExtensibility2 ライブラリをインプリメントする」で説明されているように、アドイン デザイナのクラス モジュールに IDTExtensibility2 ライブラリをインプリメントします。各イベント プロシージャにコードまたはコメントが含まれていることを確認してください。

  4. OnConnection イベント プロシージャにより、アドインが実行されている Visual Basic Editor のインスタンスへの参照が含まれる Application 引数が渡されます。このオブジェクトを使用して、VBA Extensibility ライブラリに含まれるすべてのオブジェクトで作業することができます。そのためには、VBIDE.VBE 型のパブリック モジュール レベルのオブジェクト変数を作成し、Application 引数によって参照されているオブジェクトをこの変数に割り当てます。

  5. OnConnection イベント プロシージャ内で、省略可能なコードを含めることにより、Visual Basic Editor のコマンド バー コントロールにアドインのフォームを設定することができます。VBE オブジェクトの CommandBars プロパティを使用して、Visual Basic Editor のコマンド バーを操作できます。

  6. プロジェクトに含めるフォームまたはほかのコンポーネントを作成します。

  7. OnConnection イベント プロシージャにブレークポイントを設定し、[実行] メニューの [完全コンパイル後に開始] をクリックします。

  8. Excel などの VBA ホスト アプリケーションで Visual Basic Editor を開き、[アドイン] メニューの [アドイン マネージャ] をクリックして、使用するアドインをリストから選択します。開始時にアドインをロードするように設定されていない場合は、[ロード/アンロード] チェック ボックスをオンにしてアドインをロードします。

  9. アドインをデバッグします。デバッグが完了したら、Visual Basic 6.0 で実行中のプロジェクトを終了し、[ファイル] メニューの [プロジェクト名.dll の作成] をクリックして、アドインの DLL を作成します。

Office 2000 アプリケーションの COM アドインを配布する際と同様の方法で、Visual Basic Editor の COM アドインを配布することができます。詳細については、この章の「COM アドインを配布する」を参照してください。

Microsoft Visual Basic for Applications Extensibility 5.3 ライブラリを使用する

VBA Extensibility ライブラリで提供されるオブジェクトを使用して、Visual Basic Editor およびその中に含まれる VBE プロジェクトで作業を行うことができます。Visual Basic 6.0 で作成されたアドインから、OnConnection イベント プロシージャの Application 引数を通じて、VBA Extensibility ライブラリの最上位オブジェクトである VBE オブジェクトへの参照を取得できます。この引数により、アドインが実行されている Visual Basic Editor のインスタンスへの参照が提供されます。

VBProject オブジェクトは、Visual Basic Editor で開いている VBA プロジェクトを参照します。VBProject オブジェクトには、VBComponent オブジェクトを含む VBComponents コレクションが含まれます。VBComponent オブジェクトは、標準モジュール、クラス モジュール、またはフォームなど、プロジェクト内のコンポーネントを示します。VBComponent オブジェクトはこれらのオブジェクトをすべて示すことが可能なため、Type プロパティを使用して、現在使用しているモジュールの種類を確認することができます。

たとえば、アドインが実行される Visual Basic Editor のインスタンスを表す、vbeCurrent という名前のVBIDE.VBE 型の変数があると仮定します。次のコードでは、アクティブなプロジェクトに含まれるすべてのコンポーネント名と種類が [イミディエイト] ウィンドウに表示されます。

  Dim vbcComp As VBIDE.VBComponent

For Each vbcComp In vbeCurrent.ActiveVBProject.VBComponents
   Debug.Print vbcComp.Name, vbcComp.Type
Next vbcComp

VBComponent オブジェクトには、CodeModule オブジェクトを返す CodeModule プロパティが含まれます。CodeModule オブジェクトは、コンポーネントに関連するコード モジュールを参照します。CodeModule オブジェクトのメソッドおよびプロパティを使用して、モジュール内のコードを行単位で操作できます。たとえば、InsertLines メソッドを使用して行を挿入したり、Find メソッドと Replace メソッドを使用して検索と置換を実行することができます。

Visual Basic Editor のコマンド バーを使用して作業を行うには、VBE オブジェクトの CommandBars プロパティを使用して CommandBars コレクションへの参照を取得します。

VBA Extensibility ライブラリで作業する方法については、Visual Basic リファレンス ヘルプの [キーワード] タブで "VBProject オブジェクト" を選択して、関連するトピックを参照してください。