現在オフラインです。再接続するためにインターネットの接続を待っています

Visual C++ .NET から Office オートメーション用のタイプ ライブラリを使用する方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

この記事は、以前は次の ID で公開されていました: JP307473
概要
この資料では、コンポーネント オブジェクト モデル (COM) に準拠するアプリケーションのオートメーション クライアントとして動作する Visual C++ .NET プロジェクトをビルドする方法について説明します。この資料のサンプルでは、Office コンポーネント用のクラス ラッパーを持つ MFC (Microsoft Foundation Class) を使用しています。
詳細
以下の手順は、単純なオートメーション クライアントをビルドする方法を説明しています。この方法は、主に 3 つ手順で構成されています。
  1. オートメーション クライアントを作成する
  2. コードを追加して Microsoft Excel をオートメーションで起動する
  3. オートメーション クライアントを実行する
最初の手順の「オートメーション クライアントを作成する」を使用して、使用しているオートメーション サーバーとは無関係に、新しいオートメーション クライアントを作成できます。2 番目の手順の「コードを追加して Microsoft Excel をオートメーションで起動する」は、オートメーション サーバー固有の手順です。

オートメーション クライアントを作成する

  1. Microsoft Visual Studio .NET を起動します。[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。Visual C++ のプロジェクトの種類から [MFC アプリケーション] をクリックし、プロジェクトに AutoProject という名前を付けます。
  2. MFC アプリケーション ウィザードが表示されたら、[アプリケーションの種類] タブをクリックして、アプリケーションの種類を [ダイアログ ベース] に設定し、[完了] をクリックします。
  3. [IDD_AUTOPROJECT_DIALOG] ダイアログ ボックスを以下のように変更します。
    1. テキスト コントロール (IDC_STATIC) と [キャンセル] ボタンを削除します。
    2. [OK] ボタンの ID を "IDRUN" に変更して、Caption プロパティを "実行" に変更します。
  4. オートメーション サーバーのタイプ ライブラリからクラス ラッパーを次のように作成します。
    1. ソリューション エクスプローラで、[AutoProject] を右クリックし、[追加] をポイントし、[クラスの追加] をクリックします。
    2. [TypeLib からの MFC クラス] をクリックし、[開く] をクリックします。
    3. [クラスの追加元] の [レジストリ] をクリックし、使用中のオートメーション サーバーのタイプ ライブラリを検索して、登録します。

      この例では、Microsoft Excel 10.0 Type Library (Microsoft Excel 2002 の場合) または Microsoft Excel 9.0 Type Library (Microsoft Excel 2000 の場合) を選択します。
    4. 一覧から必要なインターフェイスをクリックし、不等号 (>) をクリックして、MFC がラッパーを作成するインターフェイスの一覧に、クリックしたインターフェイスを追加します。すべてのインターフェイスを追加した後、[完了] をクリックします。

      この例では、_Application インターフェイスのみが必要となります。

      重要 : 選択したタイプ ライブラリに多くのインターフェイスがある場合、MFC が選択したインターフェイスごとに異なるヘッダー ファイルを生成するため、使用する予定のインターフェイスのみを選択します。選択したインターフェイスをできるだけ少なくすることで、ファイルの生成とコンパイルの実行中に不必要なオーバーヘッドを避けることができます。
  5. COM サービスのライブラリを読み込んで有効にするには、CAutoProjectApp::InitInstance 関数に次のコードを追加します。
    if(!AfxOleInit())  // Your addition starts here.{  AfxMessageBox("Cannot initialize COM dll");  return FALSE;  // End of your addition.}AfxEnableControlContainer();					
  6. オートメーション サーバーのタイプ ライブラリでインターフェイスから生成されるヘッダー ファイルごとに include ディレクティブを追加します。AutoProjectDlg.cpp の先頭の、Stdafx.h の include ステートメントの後にこれらのディレクティブを追加します。

    この例では、CApplication.h ヘッダー ファイルの include を追加します。これは、_Application インターフェイスに対して生成されます。
          #include "stdafx.h"      #include "CApplication.h"					
先頭に戻る

コードを追加して Microsoft Excel をオートメーションで起動する

[IDD_AUTOPROJECT_DIALOG] ダイアログ ボックスで、[実行] を右クリックし、ショートカット メニューの [イベント ハンドラの追加] をクリックします。イベント ハンドラ ウィザードで、[メッセージの種類] の [BN_CLICKED] を選択し、[追加して編集] をクリックします。コードを次のように変更して、ハンドラ内で Excel をオートメーションで起動します。
void CAutoProjectDlg::OnBnClickedRun(){   CApplication app;  // app is the Excel _Application object   // Start Excel and get Application object.   if(!app.CreateDispatch("Excel.Application"))   {      AfxMessageBox("Cannot start Excel and get Application object.");      return;   }   else   {      //Make the application visible and give the user control of      //Microsoft Excel.      app.put_Visible(TRUE);      app.put_UserControl(TRUE);   }} 				
先頭に戻る

オートメーション クライアントを実行する

F5 キーを押し、オートメーション クライアントをビルドして実行します。ダイアログ ボックスが表示されたら、[実行] をクリックします。オートメーション クライアントが Excel を起動して、アプリケーションを表示します。ユーザーがアプリケーションを制御するようになるので、オートメーション クライアントが終了しても、Excel の実行は継続します。

先頭に戻る

その他の注意点

タイプ ライブラリからプロジェクトにクラスを追加した後、これらのクラスがプロジェクトのクラス ビューに表示されます。クラス ビューで、そのクラスをダブルクリックして、そのクラスのメソッドを確認します。その後、メソッドをダブルクリックして、その関数の定義を MFC ラッパーの実装ファイルに表示できます。戻り値の型を確認する場合、または関数の実装を変更する必要がある場合は、メンバ関数の定義を再表示できます。

上記の手順では、Microsoft Excel をオートメーションで起動する方法を説明していますが、同じ考え方を使用して、別のアプリケーションをオートメーションで起動できます。次の一覧には、その他の Microsoft Office アプリケーションのタイプ ライブラリのファイル名が含まれています。
アプリケーションタイプ ライブラリ
Microsoft Access 97Msacc8.olb
Microsoft Jet Database 3.5DAO350.dll
Microsoft Binder 97Msbdr8.olb
Microsoft Excel 97Excel8.olb
Microsoft Graph 97Graph8.olb
Microsoft Office 97Mso97.dll
Microsoft Outlook 97Msoutl97.olb
Microsoft PowerPoint 97Msppt8.olb
Microsoft Word 97Msword8.olb
Microsoft Access 2000Msacc9.olb
Microsoft Jet Database 3.51DAO360.dll
Microsoft Binder 2000Msbdr9.olb
Microsoft Excel 2000Excel9.olb
Microsoft Graph 2000Graph9.olb
Microsoft Office 2000Mso9.dll
Microsoft Outlook 2000Msoutl9.olb
Microsoft PowerPoint 2000Msppt9.olb
Microsoft Word 2000Msword9.olb
Microsoft Access 2002Msacc.olb
Microsoft Excel 2002Excel.exe
Microsoft Graph 2002Graph.exe
Microsoft Office 2002MSO.dll
Microsoft Outlook 2002MSOutl.olb
Microsoft PowerPoint 2002MSPpt.olb
Microsoft Word 2002MSWord.olb
Microsoft Office Access 2003Msacc.olb
Microsoft Office Excel 2003Excel.exe
Microsoft Office Graph 2003Graph.exe
Microsoft Office 2003MSO.dll
Microsoft Office Outlook 2003MSOutl.olb
Microsoft Office PowerPoint 2003MSPpt.olb
Microsoft Office Word 2003MSWord.olb
Microsoft Office Access 2007Msacc.olb
Microsoft Office Excel 2007Excel.exe
Microsoft Office Graph 2007Graph.exe
2007 Microsoft OfficeMSO.dll
Microsoft Office Outlook 2007MSOutl.olb
Microsoft Office PowerPoint 2007MSPpt.olb
Microsoft Office Word 2007MSWord.olb

: 上記のタイプ ライブラリのデフォルトの場所は以下のとおりです。
Office のバージョンパス
Office 97C:\Program Files\Microsoft Office\Office
Office 2000C:\Program Files\Microsoft Office\Office
Office XPC:\Program Files\Microsoft Office\Office10
Office 2003C:\Program Files\Microsoft Office\Office11
2007 OfficeC:\Program Files\Microsoft Office\Office12

Dao350.dll と Dao360.dll のデフォルトの場所は、C:\Program Files\Common Files\Microsoft Shared\Dao です。
関連情報
Visual C++ .NET に関する一般的な情報については、次の Usenet ニュースグループを参照してください。次のマイクロソフト Web サイトの Visual C++ .NET Support Center も参照してください。
IDispatch ole automation listbox OFF2007
プロパティ

文書番号:307473 - 最終更新日: 06/14/2007 02:55:16 - リビジョン: 8.0

Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft Foundation Class Library 4.2, Microsoft Office Professional 2007, Microsoft Office Professional Edition 2003, Microsoft Office XP Developer Edition, Microsoft Office 2000 Developer, Microsoft Office 97 Developer Edition

  • kbexpertiseinter kbautomation kbhowto kbnewsgrouplink KB307473
フィードバック