即効テクニック |
ComアドインとはOffice2000 Developerエディションで開発可能なComベースのアドインです。通常のアドインと異なり、VBAの他VB,VC,VJなどでも開発が可能です。 また、DLLとして提供されるためソースコードの完全な隠蔽が可能であり、Developerの機能であるVBAディストリビューションウィザードを使用してセットアップパッケージを作成することが出来るため、アプリケーションの配布も容易になります。 エクセルVBAからOffice2000 Developerの新機能であるComアドインを開発するには以下の手順で行います。 ここではテスト用のアドインを作成します。
- VBEのメニューから”挿入”− ”コンポーネント”を選択、”デザイナ”タブで”Addin Class”をチェックして”OK”。
- VBEの”ファイル”メニューから、”新しいプロジェクト”で、”アドインプロジェクト”を選択。(この段階でMicrosoft Addin Desinerが読み込まれます。
- ”全般”タブでアドインの表示名、アドインの説明、アプリケーション、アプリケーションバージョン、既定のロード方法を選択します。 (仮に、”TESTAD”、”Comアドインのテスト””Microsoft Excel”、”Microsoft Excel9.0”、”StartUp”として、エクセル起動時にアドインを読み込むようにします。
- ”詳細設定”タブでサテライトDLL名、追加アドインのレジストリーキー、アドイン特有のDataを追加します。(ここでは空欄としておきます。)
- ”ツール”メニューからプロジェクトのプロパティーを表示し、プロジェクト名の変更などを行います。ここでは”TestAddProject”とします。
- ”ツール”メニューの”参照設定”から”Microsoft Excel 9.0 Object Library”を参照設定します。
- ”表示”メニューから”コード”を選択します。オブジェクト選択ボックスから”AddinInstance”を選択すると、”OnConnection”イベントプロシージャが作成されます。 ※Initialize、OnAddInsUpdate、OnBeginShutdown、OnConnection、OnStartupComplete、Terminateイベントがあります。
- WithEventsキーワードを用いてエクセルアプリケーションをあらわすObject変数を用意します。(例)”Public WithEvents X As Excel.Application”
- 作成したObject変数Xにアプリケーションのインスタンスを格納します。OnConnectionイベントプロシージャ内に・・・ (例)
Private Sub AddinInstance_OnConnection _ (ByVal Application As Object, _ ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _ ByVal AddInInst As Object, _ custom() As Variant) Set X = Application End Sub※上記イベントプロシージャでApplicationを格納したオブジェクト変数Xに対して処理を記述することでエクセルを操作できます。- OnStartupCompleteやその他のイベント、あるいは標準モジュール、フォームモジュールなどを追加して処理を記述します。 (例)フォームを表示させます。
Private Sub AddinInstance_OnStartupComplete _ (custom() As Variant) UserForm1.Show End Sub- プロジェクトをコンパイルして、名前を付けてプロジェクトを保存します。 (例)”XXX.vba”
- ”ファイル”メニューから”XXX.dllの作成”を選択します。実行可能ファイルの作成ダイアログで”オプション”を表示させ、内容確認の上”OK”。 DLLの作成を確認してエクセルを再起動すると、StartUp時のアドインロードを指定したため、10のコードを記述していればユーザフォームが表示されます。