Office リボンをカスタマイズ – パート6 – (TIPS 2 : 動的なカスタマイズ)

こんにちは、Office 開発サポート チームの中村です。 今回の記事では、前回の投稿に引き続き、リボン カスタマイズ方法の例をご紹介します。   以前の投稿で紹介した方法で、リボンのカスタマイズがファイル単位でできることはお伝えしましたが、以下のような状況の開発者の方もいるのではないでしょうか。 ・アドインとして提供する 1 つのプログラムから、ファイルによってリボンの内容を変えたい (ファイルにカスタマイズを組み込みたくない) ・Office 97-2003 形式 (.xls 等) のファイルにリボン カスタマイズを行いたい ・ブック内での操作に応じて動的にリボンの状態を変えたい   これらの要望は、Office 2007 形式のアドイン (.xlam 等)、または VSTO カスタマイズで実現できますので、以下に具体例を用いて紹介します。Excel のカスタマイズを行われることが多いので、(これまでの記事を含め) 以下はすべて Excel を例に説明していますが、他の Office アプリケーションでも利用できます。   目次 1. .xls 形式のファイルのリボン カスタマイズを行う (アドインからファイルごとにリボンをカスタマイズする) 2. 任意のタイミングでリボンの状態を変更する   1. .xls 形式のファイルのリボン カスタマイズを行う (アドインからファイルごとにリボンをカスタマイズする) .xlsx / .xlsm 形式のファイルであれば、リボン カスタマイズの XML をファイル内に組み込むことができました。一方、.xls…


Office リボンをカスタマイズ – パート5 – (TIPS 1 : 既存メニューのカスタマイズ)

こんにちは、Office 開発サポート チームの中村です。   本テーマについて、前回の投稿から時間が空いてしまい申し訳ありません。 ここまでの記事では、カスタムのリボン タブを作成するというカスタマイズ内容を例に、カスタマイズ手法についてご紹介してきました。今回の記事からは、この他によく行われるカスタマイズの実装方法をいくつか紹介しつつ、XML などの書き方のイメージを掴んでいただればと思います。   今回の投稿で紹介する方法は、1. を除いて VSTO のビジュアルなデザイナーではカスタマイズできない内容となりますので、XML を利用して実装します。VSTO のビジュアルなデザイナーでカスタマイズしている方で以下の方法を利用したい場合は、以前の投稿の例でも行っていたように、ビジュアルなデザイナーで作成したリボンを XML へエクスポートできます。   目次 はじめに : 開発時に便利な機能 1. 既存のタブをすべて表示しない方法 2. 既存のリボン メニューを無効化する方法   はじめに : 開発時に便利な機能 Office で以下のオプションを有効にすると、リボン カスタマイズ用の XML の記述エラーをハンドリングすることができます。 無視して問題ないエラーも通知されるため、運用上はお勧めしませんが、開発時にはこのオプションを有効にしておくと実装上の問題点を確認しやすくなります。 <該当の設定項目> [ファイル] タブ – [オプション] – [詳細設定] – [全般] セクション – [アドイン ユーザー インターフェイスに関するエラーを表示する]   1. 既存のタブをすべて表示しない方法 アプリケーション経由で…


Office リボンをカスタマイズ – パート4 – (VSTO XML でカスタマイズ)

こんにちは、Office 開発 サポート チームの中村です。 Office リボンのカスタマイズ方法について数回にわたってご紹介していますが、パート 1 でご紹介した 3 つの方法のうち、最後の方法 「b. VSTO から XML を用いてカスタマイズを行う」について詳しく紹介したいと思います。   以前の投稿は、以下をご参照ください。 Office リボンをカスタマイズ – パート1 – (カスタマイズ手法と仕組み) Office リボンをカスタマイズ – パート2 – (ファイルにカスタム XML を追加) Office リボンをカスタマイズ – パート3 – (VSTO ビジュアルなデザイナーでカスタマイズ)   VSTO XML でリボンをカスタマイズする この方法は、Visual Studio を使って VSTO ソリューションを開発し、このソリューションの中に、リボンをカスタマイズする XML とカスタマイズで実行したい処理 (コールバック関数) を実装します。ビジュアルなデザイナーと同じように、カスタマイズ内容は VSTO ランタイムによって VSTO ソリューションのロード時にOffice…


Office 2016 クイック実行形式 16.0.7341.2032 以降で Microsoft.Vbe.Interop.Forms を参照するプログラムでエラー

こんにちは、Office 開発サポート チームの中村です。 今回の記事では、.NET Framework 上で動作するアプリケーションからの Office オートメーションや VSTO ソリューションで、Microsoft.Vbe.Interop.Forms が参照できないことによってエラーが発生する動作について記載します。 ※ 弊社内で状況を確認中のため、この記事は後日更新される可能性があります。   1. サマリ Office 2016 クイック実行形式の 16.0.7341.2032 以降のバージョンで、Microsoft.Vbe.Interop.Forms がグローバル アセンブリ キャッシュ (GAC) に登録されなくなりました。この影響で、このバージョン以降の Office 2016 の利用時に、GAC に Microsoft.Vbe.Interop.Forms が存在しない状況が生じる場合があります。 この動作のため、Microsoft.Vbe.Interop.Forms を利用する .NET Framework 上で動作するアプリケーションで PIA 埋め込みを行っていない場合に、この環境では GAC から Microsoft.Vbe.Interop.Forms アセンブリを読み込むことができず、エラーが生じます。   2. 現象詳細 Office PIA (Office プライマリ相互運用アセンブリ) には、ActiveX コントロールへのアクセスに利用する Microsoft.Vbe.Interop.Forms アセンブリ (Microsoft Forms…


Office リボンをカスタマイズ – パート3 – (VSTO ビジュアルなデザイナーでカスタマイズ)

こんにちは、Office 開発 サポート チームの中村です。 今回も、リボンのカスタマイズ手順について解説していきます。今回の記事では、パート 1 で紹介した「c. VSTO からビジュアルなデザイナーを用いてカスタマイズを行う」 について紹介したいと思います。前回と同じく、サンプル作成を通して解説します。   VSTO ビジュアルなデザイナーでリボンをカスタマイズする この方法は、VSTO で提供されている Visual Studio 上で GUI でリボンのカスタマイズを行うビジュアルなデザイナー機能を用いてリボンをカスタマイズします。カスタマイズ内容は、VSTO ランタイムによって VSTO ソリューションのロード時にOffice が読み込むことができるよう解釈され、リボンにカスタマイズが反映されます。   メリット  GUI でリボンをカスタマイズできるため、XML コードを開発者が実装する必要がありません。直感的にデザインを行うことができます。  VSTO はアドインおよびドキュメント形式のカスタマイズが作成できますので、リボン カスタマイズを反映させたい範囲に応じたソリューションが開発できます。   制約事項 既存のリボン コントロールを無効化する等のカスタマイズはできません。(既存タブに独自コントロールを追加することはできます。) VSTO で提供される機能のため、VSTO としての開発が必要です。C++ で開発された COM アドイン等からは利用できないことや、VSTOのインストール方法 (通常は ClickOnce) などを検討する必要があります。   それでは、ここからは Excel アドインのサンプルを作成する手順を説明していきます。   今回のテーマ 今回の記事では、サンプルの作成を通して以下を実現する方法をお伝えしたいと思います。 VSTO アドインでビジュアルなデザイナーからリボンをカスタマイズする方法 リボンのコールバック関数記述のポイント…


VSTO : .NET 3.5 で使用していた UserInclusionList クラスが .NET 4.0 以降は使用できない

  こんにちは、Office 開発 サポート チームの多田です。 今回は、.NET 3.5 で使用していた UserInclusionList クラスが .NET 4.0 以降では使用できない件、およびその対処策についてご案内します。   はじめに VSTOソリューションをインストール時や、初回起動時にユーザーに信頼するかどうかの確認ダイアログを表示させたくない、といった理由から、VSTO ソリューションへの信頼をあらかじめ付与したい場合があります。信頼を付与する方法として、従来、VSTO では UserInclusionList クラスおよび AddInSecurityEntryクラスが用意されていました。   参考) 方法: 信頼のリストのエントリを追加または削除する https://msdn.microsoft.com/ja-jp/library/bb398239.aspx UserIncrusionList クラスおよび AddInSecurityEntry クラスを含む Microsoft.VisualStudio.Tools.Office.Runtime.v10.0.dll は、.NET Framework 3.5 用の Office 拡張機能アセンブリです。 このため、.NET Framework 3.5 ターゲットの VSTO テンプレートを含まない Visual Studio 2012 以降がインストールされた開発環境で、かつ .NETFramework 3.5 が端末にインストールされていない場合は、Microsoft.VisualStudio.Tools.Office.Runtime.v10.0.dll アセンブリを利用できません。また、インストール先環境に .NET Framework 3.5 がインストールされていない場合も、同様に利用できません。   参考) タイトル : Visual Studio Tools…

0

[オートメーション / VSTO] .NET での Office ソリューション開発時の開発環境のバージョン選定 (最新版)

こんにちは、Office 開発 サポート チームの中村です。 今回は、C# や VB.NET を使って .NET Framework 上で動作する Office をオートメーションするプログラムや、VSTO でOffice ソリューション (アドインや、プログラムが組み込まれた Office ファイル) を作成するときに必要な環境構成について記載します。 過去の投稿で、当時の製品でのバージョン選定について記載していましたが、古い情報になってしまいましたので、本記事では、現在サポートされる製品バージョンについての最新情報を記載したいと思います。動作の仕組みの説明などは、過去の投稿で詳しく説明していますのでぜひ合わせてご参照ください。 2017/7/14 Update Visual Studio 2017 と .NET Framework 4.7 の情報を追記しました。 目次 1. 導入 – 開発環境に必要なもの 2. Office オートメーションの場合 3. VSTO ソリューションの場合 4. その他構成に関する注意点 5. 参考資料   1. 導入 – 開発環境に必要なもの .NET Framework 上で動作する Office をオートメーションするプログラムや…