VBA と Office Developer を使用して Office COM アドインを作成する方法

この記事は、以前は次の ID で公開されていました: JP306130
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要
この資料では、Microsoft Excel または Microsoft Word を起動したときにウェルカム メッセージを含むユーザー フォームを表示する方法を説明します。コンポーネント オブジェクト モデル (COM) のアドインを使用すると、共通するコードをコンパイル済みのダイナミック リンク ライブラリ (DLL) に集約することができます。作成した DLL は、任意の Office アプリケーション内で簡単に利用することができます (たとえば、Microsoft Outlook の連絡先に Excel、Word、および Microsoft Access からアクセスすることができます)。Microsoft Office で COM DLL を開発する最も簡単な方法は、アドイン プロジェクトを使用する方法です。アドイン プロジェクトでは、デザイナと IDTExtensibility2 ライブラリへの参照を利用できます。

先頭に戻る

必要条件

この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。

  • Office XP アプリケーションでの VBA (Visual Basic for Applications) プロシージャの作成
  • VBA でユーザー フォームを扱う作業
  • Office XP ツール バーのカスタマイズ
先頭に戻る

アドイン プロジェクトの作成

Microsoft Office Developer 2000 ツールまたは Microsoft Office XP Developer ツールがインストールされている場合、任意の Office 2000 アプリケーションおよび Office XP アプリケーションでアドイン プロジェクトを作成できます。この例では、Microsoft Word 2002 を使用します。
  1. Microsoft Word 2002 を起動します。
  2. [ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
  3. Visual Basic Editor (VBE) で、[ファイル] メニューの [新しいプロジェクト] をクリックします。
  4. [新しいプロジェクト] ダイアログ ボックスで [アドイン プロジェクト] をクリックし、[OK] をクリックします。自動的に AddIn Designer が表示されます。
  5. プロパティ ウィンドウが表示されていない場合は、[表示] メニューの [プロパティ ウィンドウ] をクリックします。
  6. プロパティ ウィンドウで、プロジェクトの名前を AddInDesigner1 から WelcomeAddIn に変更します。
  7. [挿入] メニューの [ユーザー フォーム] をクリックして、ユーザー フォーム (UserForm1) を挿入します。
  8. ツールボックスからユーザー フォームにラベルとコマンド ボタンを追加します。
  9. プロパティ ウィンドウで、次の表に従ってコントロールの属性を変更します。
    コントロールプロパティ
    ラベルオブジェクト名lblMessage
    Captionようこそ!
    Font14pt
    AutoSizeTrue
    コマンド ボタンオブジェクト名cmdOK
    CaptionOK
    ユーザー フォームオブジェクト名frmWelcome

  10. [挿入] メニューの [標準モジュール] をクリックして、標準モジュールを挿入します。
  11. 次に示すグローバル文字列変数の宣言を標準モジュールに追加します。
    Public gstrUserName As String'This variable will be used to store the name of the user as defined'in the Options dialog boxes (from the Tools menu) in Word and Excel.					
  12. モジュールに次のコードを追加して、画面にフォームを表示する DisplayForm というパブリック サブ プロシージャを作成します。
    Public Sub DisplayForm()  frmWelcome.Show vbModalEnd Sub					
  13. frmWelcome フォームのコード ウィンドウを表示し、次のコードを UserForm_Initialize イベントに追加します。このコードは、ラベルのキャプションと文字列変数を連結します。
    lblMessage.Caption = lblMessage.Caption & " " & gstrUserName					
  14. コマンド ボタン cmdOK の Click イベントに次のコードを追加します。このコードは、フォームをアンロードします。
    Unload me					
先頭に戻る

AddIn Designer のプロパティの変更

次の手順に従ってデザイナのプロパティを変更し、Microsoft Excel が起動されると同時にアドインが開始されるようにします。
  1. プロジェクト エクスプローラで、[デザイナ] フォルダの下の [WelcomeAddIn] をダブルクリックして、AddIn Designer に戻ります。
  2. デザイナの [全般] タブで、次の表に従ってデザイナのプロパティを変更します。
    プロパティ
    アドインの表示名Welcome
    アドインの説明このアドインには、Excel 専用のコードが含まれています。
    アプリケーションMicrosoft Excel
    アプリケーションのバージョンMicrosoft Excel 10.0
    既定のロード方法Startup
先頭に戻る

IDTExtensibility2 イベントの実装

  1. [表示] メニューの [コード] をクリックして、デザイナの背後のコード モジュールを表示します。
  2. [ツール] メニューの [参照設定] をクリックし、[Microsoft Excel 10.0 Object Library] チェック ボックスをオンにし、[OK] をクリックします。
  3. コード ウィンドウで、[オブジェクト] ボックスの一覧の [AddinInstance] をクリックし、[プロシージャ] ボックスの一覧の [OnConnection] をクリックします。

    このイベントは、コマンド バー ボタンの作成や、アドインがホスト アプリケーションに接続されている場合にアプリケーション イベントなどのイベントとコードを関連付ける場合に便利です。
  4. AddinInstance_OnConnection イベント プロシージャに次のコードを追加します。このコードは、グローバル変数 gstrUserName にユーザー名を格納し、DisplayForm プロシージャを呼び出します。
    gstrUserName = Application.UserNameDisplayForm					
  5. VBE で、[ファイル] メニューの [名前を付けて保存] をクリックし、プロジェクトを Welcome.vba という名前で保存します。
先頭に戻る

2 つ目のデザイナの追加

次に、2 つ目のデザイナを追加して、Microsoft Word 用の同じ機能を実装します。
  1. VBE で、もう 1 つアドイン プロジェクトを作成します。デフォルトで、AddInProject2 が作成されます。
  2. プロジェクト エクスプローラで、新しいアドイン デザイナ インターフェイス (AddInDesigner1) を既存のアドイン プロジェクトにドラッグします。プロジェクトのデザイナが 2 つになります。
  3. プロジェクト エクスプローラで、AddInProject2 を右クリックし、[プロジェクトを閉じる] をクリックして、作成したプロジェクトを削除します。
  4. 次のメッセージが表示されることを確認します。
    プロジェクト AddInProject2 が変更されています。変更を保存しますか?
    [いいえ] をクリックします。
  5. 新しいデザイナのプロパティを変更します。アドインの表示名に [Welcome] と入力し、ターゲット アプリケーションを Microsoft Word 10.0 にし、既定のロード方法を Startup にします。
  6. 新しい Word 用のデザイナの AddinInstance_OnConnection イベント プロシージャに次のコードを追加します。このコードは、前の手順で Excel のデザイナの OnConnection イベントに記述したコードと同じです。
    gstrUserName = Application.UserNameDisplayForm					
先頭に戻る

アドインのデバッグ

  1. 必要に応じて、コードに適切なブレーク ポイントを追加します。
  2. VBE で [実行] メニューの [プロジェクトの実行] をクリックして、アドインを実行します。
  3. Microsoft Excel を起動します。プロジェクトを開始すると、[AddIn Project Name - プロジェクト プロパティ] ダイアログ ボックスが表示される場合があります。この場合は、[プログラムを開始する] をクリックし、Excel.exe を参照します。次に、[OK] をクリックします。このダイアログ ボックスが表示されない場合は、[スタート] メニューの [プログラム] をポイントし、[Microsoft Excel] をクリックして Excel を起動します。これで、ユーザー フォームが表示されます。
  4. COM アドイン マネージャが利用可能になっていない場合は、次の手順に従ってツール バーまたはメニューに [COM アドイン] コマンドを追加します。
    1. Word を起動し、[ツール] メニューの [ユーザー設定] をクリックします。
    2. [ユーザー設定] ダイアログ ボックスの [コマンド] タブで、[分類] ボックスの [ツール] をクリックし、[コマンド] ボックスの [COM アドイン] をツール バーまたは [ツール] メニューのポップアップ メニューまでドラッグします。
  5. 追加した [COM アドイン] コマンドをクリックして、COM アドイン マネージャ (CAM) を表示します。CAM に表示された一覧には、読み込まれているすべてのアドインが含まれています。
  6. OnConnection イベントをテストするために、CAM で [Welcome] チェック ボックスをオフにし、[OK] をクリックします。CAM を再び表示し、[Welcome] チェック ボックスをオンにして [OK] をクリックします。これで、再びユーザー フォームが表示されます。
  7. ホスト アプリケーション (Word または Excel) を閉じ、VBE で [実行] メニューの [プロジェクトの終了] をクリックして、プロジェクトの実行を停止します。
先頭に戻る

アドインの動作確認

最後に、アドインをコンパイルし、他のコンピュータ上で動作を確認します。
  1. VBE でプロジェクトを保存します。保存した VBE は、編集可能です。コンパイル済みのものに変更を加えることはできません。
  2. [ファイル] メニューの [Welcome.DLL の作成] をクリックし、DLL を保存します。
  3. 次の手順に従って regsvr32 コマンドを使用して、DLL を登録します。
    1. Windows の [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
    2. [名前] ボックスに、次のとおり入力します。
      regsvr32 <path>\Welcome.DLL
      <path> は、DLL のファイル システム パスです。
  4. [OK] をクリックして、DLL の登録を確認します。
  5. Excel または Word を実行します。ユーザー フォームが表示されます。ユーザー フォームが表示されない場合は、[ツール] メニュー (またはツール バー) の [COM アドイン] をクリックし、[Welcome] チェック ボックスをオンにします。
: DLL を配布する最も簡単な方法は、ディストリビューション ウィザードを使用する方法です。

先頭に戻る

トラブルシューティング

  • アドインがメモリに読み込まれる際のコードは、短く、効率良く記述するようにします。たとえば、起動時に OnConnection イベントでデータベースのデータを操作すると、ユーザーにはコンピュータが応答を停止した (ハングした) ように見える場合があります。
  • ユーザー フォームを使用する場合は、十分に注意する必要があります。ユーザーがホスト アプリケーションをクリックすると、ユーザー フォームがホスト アプリケーションに隠れるため、ユーザーにはフォームがなくなったように見える場合があります。この問題を回避するには、フォームをモーダルにします。フォームをモーダルにするには、次のように vbModal 定数を使用します。
    frmMyUserForm.Show vbModal						
    この資料の例でこのコードが使用されている場所を確認するには、「アドイン プロジェクトの作成」の手順 12. のコードを参照してください。
先頭に戻る
関連情報
アドイン テンプレートについては、Office XP Developer CD-ROM に収録されている \Samples\Working with AddIns\VBA_COM_AddIn を参照してください。

コマンド バー ボタンの作成の関連情報については、以下の Microsoft Developer Network (MSDN) Web サイトを参照してください。Outlook アドインのデザイン方法の詳細については、次の MSDN Web サイトの MSDN Download & Code Center を参照してください。
先頭に戻る
MOD
プロパティ

文書番号:306130 - 最終更新日: 12/06/2015 04:53:20 - リビジョン: 4.2

Microsoft Office XP Developer Edition, Microsoft Office XP Professional

  • kbnosurvey kbarchive kbhowtomaster KB306130
フィードバック