.NET Framework 4 を対象とする Office プロジェクトのデザインの変更
更新 : 2010 年 5 月
Visual Studio 2010 では、.NET Framework 4 を対象とした Office プロジェクトのデザインがいくつか変更されています。 以前のバージョンの Visual Studio の Office プロジェクトに慣れている場合は、これらの変更内容を確認してから、.NET Framework 4 を対象とする Office プロジェクトを開発してください。 .NET Framework 4 を対象とするために更新する既存のプロジェクトがある場合は、互換性に影響する変更点に注意してください。
Visual Studio 2010 Tools for Office Runtime のインターフェイス ベースのデザインについて
.NET Framework 4 を対象とする Office プロジェクトを開発する際に、Visual Studio 2010 Tools for Office Runtime で最もよく使用する型はインターフェイスです。 これは、以前のバージョンの Visual Studio Tools for Office Runtime からの重大な変更点です。以前のバージョンでは、これらの型はクラスです。 たとえば、.NET Framework 4 を対象とする場合、Worksheet 型と Document 型はクラスではなくインターフェイスです。 詳細については、「Visual Studio Tools for Office Runtime の概要」を参照してください。
以前のバージョンの Visual Studio Tools for Office Runtime で直接インスタンス化できた型の場合は、Globals.Factory オブジェクトのメソッドを使用して型のインスタンスを取得できます。 たとえば、SmartTag インターフェイスを実装するオブジェクトを取得するには、Globals.Factory.CreateSmartTag メソッドを使用します。 詳細については、次のトピックを参照してください。
Office プロジェクトの新しい基本クラス
Visual Studio 2010 Tools for Office Runtime の新しいインターフェイス ベースのデザインは、Office プロジェクトで生成される ThisDocument、ThisWorkbook、ThisAddIn などのクラスに影響します。 .NET Framework 3.5 および以前のバージョンのフレームワークを対象とする Office プロジェクトでは、これらの生成されるクラスは、Microsoft.Office.Tools.Word.Document、Microsoft.Office.Tools.Excel.Worksheet、Microsoft.Office.Tools.AddIn などの Visual Studio Tools for Office Runtime のクラスから派生します。 .NET Framework 4 を対象とするプロジェクトでは、これらの Visual Studio Tools for Office Runtime クラスがインターフェイスになりました。 そのため、Office プロジェクトで生成されるクラスでは実装を派生できなくなりました。 代わりに、生成されるクラスは、DocumentBase、WorksheetBase、AddInBase などの新しい基本クラスから派生します。 詳細については、「アプリケーション レベルのアドインのプログラミング」および「ドキュメント レベルのカスタマイズのプログラミング」を参照してください。
基本クラスは、再頒布可能な Visual Studio Tools for Office Runtime には含まれません。 代わりに、Visual Studio 2010 に含まれるユーティリティ アセンブリに定義されています。 これらのアセンブリは、Office プロジェクトのビルド時に出力フォルダーにコピーし、ソリューションと共に配置する必要があります。 ユーティリティ アセンブリの詳細については、「Visual Studio Tools for Office Runtime のアセンブリ」を参照してください。
.NET Framework 4 に再ターゲットされた Office プロジェクトの互換性に影響する変更点
次の表は、.NET Framework 4 に再ターゲットされた Office プロジェクトの互換性に影響する主な変更点を示します。 詳細については、「.NET Framework 4 への Office ソリューションの移行」を参照してください。
互換性に影響する変更点 |
結果 |
---|---|
SecurityTransparentAttribute が Office プロジェクトで使用またはサポートされなくなりました。 |
Visual Studio 2008 からアップグレードする Office プロジェクトの AssemblyInfo コード ファイルからこの属性を削除する必要があります。 詳細については、「.NET Framework 4 に移行する Office プロジェクトの実行に必要な変更」を参照してください。 |
ExcelLocale1033Attribute が Excel プロジェクトで使用またはサポートされなくなりました。 |
Excel プロジェクトの AssemblyInfo コード ファイルからこの属性を削除する必要があります。 詳細については、「.NET Framework 4 に移行する Excel プロジェクトおよび Word プロジェクトの更新」を参照してください。 |
リボン (ビジュアルなデザイナー) プロジェクト項目のプログラミング モデルが変更されました。 |
プロジェクトのすべてのリボン項目の分離コード ファイルを変更する必要があります。 また、実行時にリボン コントロールをインスタンス化するコード、リボン イベントを処理するコード、またはリボン コンポーネントの位置をプログラムによって設定するコードをすべて変更する必要があります。 詳細については、「.NET Framework 4 に移行する Office プロジェクトのリボンのカスタマイズの更新」を参照してください。 |
Outlook フォーム領域のプログラミング モデルが変更されました。 |
プロジェクトのフォーム領域の分離コード ファイル、および実行時に特定のフォーム領域クラスをインスタンス化するすべてのコードを変更する必要があります。 詳細については、「.NET Framework 4 に移行する Outlook プロジェクトのフォーム領域の更新」を参照してください。 |
Excel プロジェクトと Word プロジェクトでのスマート タグのプログラミング モデルが変更されました。 スマート タグは、Excel 2010 および Word 2010 では使用されていません。 詳細については、「スマート タグの概要」を参照してください。 |
スマート タグ オブジェクトとアクション オブジェクトを作成するコード、およびカスタムのスマート タグ レコグナイザーを定義するコードをすべて変更する必要があります。 詳細については、「.NET Framework 4 に移行する Excel プロジェクトおよび Word プロジェクトの更新」を参照してください。 |
GetVstoObject メソッドと HasVstoObject メソッドの構文が変更されました。 |
プライマリ相互運用機能アセンブリ (PIA) からネイティブ オブジェクトでこれらのメソッドにアクセスするときに、Globals.Factory オブジェクトをメソッドに渡す必要があります。または、プロジェクトの Globals.Factory プロパティによって返されるオブジェクトでこれらのメソッドにアクセスすることもできます。 詳細については、「.NET Framework 4 に移行する Excel プロジェクトおよび Word プロジェクトの更新」を参照してください。 |
Word コンテンツ コントロールのイベントが新しいデリゲートに関連付けられています。 |
Word コンテンツ コントロールのイベントを処理するすべてのコードを変更し、新しいデリゲートを指定する必要があります。 詳細については、「.NET Framework 4 に移行する Excel プロジェクトおよび Word プロジェクトの更新」を参照してください。 |
OLEObject クラスと OLEControl クラスの名前が変更されました。 |
これらのクラスのインスタンスを使用するすべてのコードを変更し、代わりに Microsoft.Office.Tools.Excel.ControlSite オブジェクトまたは Microsoft.Office.Tools.Word.ControlSite オブジェクトを使用する必要があります。 詳細については、「.NET Framework 4 に移行する Excel プロジェクトおよび Word プロジェクトの更新」を参照してください。 |
ホスト項目クラス (ThisWorkbook、Sheetn、ThisDocument、ThisAddIn など) では、オーバーライドできる Dispose メソッドが提供されなくなりました。 |
Dispose メソッド オーバーライドのすべてのコードをホスト項目クラス (ThisAddIn_Shutdown など) の Shutdown イベント ハンドラーに移動し、ホスト項目クラスから Dispose メソッド オーバーライドを削除する必要があります。 |
参照
概念
Visual Studio Tools for Office Runtime の概要
その他の技術情報
.NET Framework 4 への Office ソリューションの移行
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2010 年 5 月 |
.NET Framework 4 を対象とするプロジェクトの Dispose メソッドの削除に関する情報を追加しました。 |
情報の拡充 |