Visual Studio Tools for Office Runtime の概要
Visual Studio 2012での Microsoft Office 開発ツールを使用して作成したソリューションを実行するには、Visual Studio 2010 は、エンド ユーザーのコンピューターに Office ランタイム時ツールをインストールする必要があります。Office ランタイムの Visual Studio 2010 Tools は、2 種類の主要なコンポーネントから構成されます:
.NET Framework 用の Office 拡張機能。これらのコンポーネントは、ソリューションと Microsoft Office アプリケーションの間の通信レイヤーとなるマネージ アセンブリです。詳細については、「.NET Framework 用の Office 拡張機能について」を参照してください。
Office ソリューション ローダー。このコンポーネントは、Office アプリケーションがランタイムおよびソリューションの読み込みに使用する一連のアンマネージ DLL です。詳細については、「Office ソリューション ローダーについて」を参照してください。
ランタイムをインストールする方法はいくつかあります。ランタイムをインストールするときには、コンピューターの構成に応じて異なるランタイム コンポーネントがインストールされます。詳細については、「Visual Studio Tools for Office ランタイムのインストール シナリオ」を参照してください。
.NET Framework 用の Office 拡張機能について
Office ランタイムの Visual Studio 2010 Tools は、.NET Framework 3.5、.NET Framework 4と .NET Framework 4.5用の Office 拡張機能が含まれます。.NET Framework の各バージョンをそのバージョンに適した拡張子を対象とするソリューション。
これらの拡張機能は、ソリューションが Office アプリケーションの自動化および拡張に使用するアセンブリで構成されています。Office プロジェクトを作成すると、Visual Studio によって、そのプロジェクト タイプおよびプロジェクトの対象 .NET Framework に使用するアセンブリへの参照が自動的に追加されます。Office 拡張機能を構成するアセンブリの詳細については、「Visual Studio Tools for Office Runtime のアセンブリ」を参照してください。
Office 拡張機能の設計の相違点
.NET Framework 3.5 用の Office 拡張機能で使用する型の大部分は、クラスです。これらは Visual Studio Tools for Office Runtimeの以前のバージョンに含まれているのと同じクラスです。これに対し、.NET Framework 4 と .NET Framework 4.5 の Office 拡張機能で使用する型の大部分は、インターフェイスです。たとえば、.NET Framework 4 か .NET Framework 4.5を対象とする場合、Microsoft.Office.Tools.Excel.Worksheet と Microsoft.Office.Tools.Word.Document の型はクラスではなくインターフェイスです。
ほとんどの場合、ソリューションが .NET Framework 3.5 を対象とするかまたは .NET Framework 4 を対象とするかに関係なく、Office ソリューションで記述するコードは同じです。ただし、一部の機能については、対象となる .NET Framework のバージョンが異なる場合に別のコードが必要になります。詳細については、「.NET Framework 4 または .NET Framework 4.5 への Office ソリューションの移行」を参照してください。
.NET Framework 4 および .NET Framework 4.5用の Office 拡張機能に含まれるインターフェイス
.NET Framework 4 用の Office 拡張機能に含まれるインターフェイスと .NET Framework 4.5 のほとんどは、ユーザー コードで実装されることを意図していません。直接実装できるインターフェイスは、I という文字で始まる名前の付いたインターフェイスです。たとえば、ISmartTagExtension などです。
文字 I で始まらないすべてのインターフェイスは、将来のリリースで Office ランタイムの Visual Studio 2010 Tools と、これらのインターフェイスによって変更されることがあります。内部的に実装されます。これらのインターフェイスを実装するオブジェクトを作成するには、プロジェクトで Globals.Factory オブジェクトによって提供されるメソッドを使用します。たとえば、SmartTag インターフェイスを実装するオブジェクトを取得するには、Globals.Factory.CreateSmartTag メソッドを使用します。Globals.Factory の詳細については、「Office プロジェクト内のオブジェクトへのグローバル アクセス」を参照してください。
型の等価性を有効にして埋め込まれている .NET Framework 4 および .NET Framework 4.5を対象とするプロジェクトを入力し、
.NET Framework 4 と .NET Framework 4.5 用の Office 拡張機能のオブジェクト モデルがインターフェイスに基づいているため、Visual Studio 2012 の Visual C# と Visual Basic の両方でソリューションに Visual Studio Tools for Office Runtime から型情報を埋め込むために型の等価性の機能を使用できます。この機能はそれぞれ独立バージョンに Office ソリューションと Visual Studio Tools for Office Runtime を有効にします。たとえば、ソリューションで Microsoft.Office.Tools.Word.Document インターフェイスを埋め込み型として使用し、ランタイムの次のバージョンによって Microsoft.Office.Tools.Word.Document インターフェイスにメンバーが追加される場合でも、そのソリューションは引き続きランタイムの次のバージョンで機能します。ソリューションで Microsoft.Office.Tools.Word.Document インターフェイスを埋め込み型として使用しない場合、そのソリューションはランタイムの次のバージョンで機能しません。
既定では、型の等価性の機能は、対象とする Office プロジェクトを .NET Framework 4 か .NET Framework 4.5作成すると有効になりません。この機能を有効にするには、プロジェクト内の次のアセンブリ参照の相互運用型の埋め込みプロパティを True に設定します。
Microsoft.Office.Tools.dll
Microsoft.Office.Tools.Common.dll
Microsoft.Office.Tools.Excel.dll
Microsoft.Office.Tools.Outlook.dll
Microsoft.Office.Tools.Word.dll
この変更を加えると、プロジェクトをビルドするときに、プロジェクトが使用するすべてのランタイム型の型情報が、ソリューション アセンブリに埋め込まれます。実行時には、参照されるアセンブリの型情報ではなく、この埋め込み型情報がソリューションで使用されます。
Office ソリューション ローダーについて
Office ランタイムの Visual Studio ツールは、ランタイムおよび Office ソリューションの読み込みに Office アプリケーションが使用する複数のアンマネージ DLL が含まれます。これらの DLL を直接操作する必要が生じることはありませんが、その目的を把握しておくと、Office ソリューションのアーキテクチャについて理解を深めるうえで役に立ちます。
これらのコンポーネントが読み込み中にどのように使用されるかについては、「ドキュメント レベルのカスタマイズのアーキテクチャ」および「アプリケーション レベルのアドインのアーキテクチャ」を参照してください。
VSTOEE.dll
ユーザーがドキュメント レベルのカスタマイズを開いたりアドインを起動したりすると、Office アプリケーションが VSTOEE.dll を呼び出し、Visual Studio Tools for Office Runtime の読み込みに必要なタスクを実行します。
VSTOEE.dll によって、ソリューションおよびインストール済みの Office のバージョンに適合する Visual Studio Tools for Office Runtime のバージョンが読み込まれます。同じコンピューターに Visual Studio Tools for Office Runtime の複数のバージョンをインストールできますが、VSTOEE.dll のインスタンスは一度に 1 つしかインストールされません。この VSTOEE.dll は、コンピューターにインストールしたランタイムの最新バージョンに含まれているものです。他のソリューションで使用できるさまざまなバージョンの Visual Studio Tools for Office Runtime の詳細については、「異なるバージョンの Microsoft Office でのソリューションの実行」を参照してください。
VSTOLoader.dll
VSTOEE.dll によって適切なバージョンの Visual Studio Tools for Office Runtime が読み込まれた後、ソリューション アセンブリの読み込みに必要な大部分の処理は VSTOLoader.dll によって実行されます。VSTOLoader.dll は次のような処理を実行します。
ソリューション アセンブリごとにアプリケーション ドメインを作成します。
一連のセキュリティ チェックによって、ソリューション アセンブリに実行のアクセス許可があることを確認します。
ソリューションに必要な .NET Framework 用のバージョンの Office 拡張機能を読み込みます。
また、VSTOLoader.dll は次のようなアドインのみを対象とする処理も実行します。
IDTExtensibility2 インターフェイスを実装します。IDTExtensibility2 は、Microsoft Office アプリケーションのすべてのアドインが実装する必要のある COM インターフェイスです。このインターフェイスには、アプリケーションがアドインと通信するために呼び出すメソッドが定義されています。
IManagedAddin インターフェイスを実装します。このインターフェイスは、Office アプリケーションでアプリケーション レベルのアドインの読み込みに使用されます。詳細については、「IManagedAddin インターフェイス」を参照してください。
32 ビット バージョンおよび 64 ビット バージョンのランタイムについて
Office ランタイムの Visual Studio 2010 Tools の別の 64 ビット バージョンと 32 ビット バージョンがあります。ランタイムの次のバージョンが Office 2013 と Office 2010の 64 ビットおよび 32 ビット エディションでソリューションを実行するために使用されます。ランタイムのバージョンが Windows の組み合わせと Office 2013 または Office 2010必要な次の表に示します。
Windows のエディション |
Microsoft Office のエディション |
Visual Studio Tools for Office Runtime のバージョン番号 |
---|---|---|
32 ビット |
32 ビット |
32 ビット |
64 ビット |
32 ビット |
64 ビット |
64 ビット |
64 ビット |
64 ビット |
Office 2013 か Office 2010をインストールすると、Visual Studio Tools for Office Runtime のバージョンは、Office とともにインストールされます。たとえば、64 ビット バージョンの Windows で Office 2013 または Office 2010 の 64 ビット エディションのをインストールすると、Visual Studio Tools for Office Runtime の 64 ビット バージョンは、もインストールされます。Office 2013 または Office 2010の Visual Studio Tools for Office Runtime をインストールの詳細については、Visual Studio Tools for Office ランタイムのインストール シナリオ"を参照してください。
Office 2013 または Office 2010 の 64 ビット バージョンは、Visual Studio 2008 で 2007 Microsoft Office system 用のプロジェクト テンプレートを使用して作成された Office ソリューションを実行できます。ただし、Visual Studio 2008 で Microsoft Office 2003 用のプロジェクト テンプレートを使用して作成された Office ソリューションや、Visual Studio 2005 を使用して作成された Office ソリューションは実行できません。詳細については、「異なるバージョンの Microsoft Office でのソリューションの実行」を参照してください。
Visual Studio 2010 Tools for Office Runtime の修復
ランタイムを修復する必要がある場合は、[コントロール パネル] の [プログラムと機能] または [プログラムの追加と削除] を開き、プログラムの一覧から [Microsoft Visual Studio 2010 Tools for Office Runtime] (Microsoft Visual Studio 2010 Tools for Office Runtime) をクリックし、[アンインストール] をクリックします。実行されるセットアップ プログラムを使用して、ランタイムを修復できます。[変更] をクリックした場合、ランタイムを修復するオプションは表示されません。
参照
処理手順
方法: Visual Studio で Office プロジェクトを作成する
概念
Visual Studio Tools for Office ランタイムのインストール シナリオ
Visual Studio Tools for Office Runtime のアセンブリ