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

文書翻訳 文書翻訳
文書番号: 306130 - 対象製品
この記事は、以前は次の 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 ようこそ!
    Font 14pt
    AutoSize True
    コマンド ボタン オブジェクト名 cmdOK
    Caption OK
    ユーザー フォーム オブジェクト名 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 vbModal
    End 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.UserName
    DisplayForm
    					
  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.UserName
    DisplayForm
    					

アドインのデバッグ

  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 サイトを参照してください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/modcore/html/deovrCreatingCommandBar.asp
Outlook アドインのデザイン方法の詳細については、次の MSDN Web サイトの MSDN Download & Code Center を参照してください。
http://msdn.microsoft.com/downloads/

プロパティ

文書番号: 306130 - 最終更新日: 2007年12月4日 - リビジョン: 4.2
この資料は以下の製品について記述したものです。
  • Microsoft Office XP Developer Edition
  • Microsoft Office XP Professional
キーワード:?
kbhowtomaster KB306130
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com