Office 2007 ユーザーインターフェースのカスタマイズ(リボンデザイナ編 その①)

VSTO を利用した Office ユーザーインターフェースのカスタマイズについてですが、

よく、VSTO から Office メニューのカスタマイズを何がどこまでできるのかを聞かれます。

VSTO 2008 では Office 2003 と Office 2007 のユーザーインターフェースのカスタマイズができます。

何ができてできないのかは以下の表を参考にしていただければと思います。

 

カスタム リボン UI

メニューとツール バー

サポートされているプロジェクトの種類

ドキュメント レベルのカスタマイズ

アプリケーション レベルのアドイン

ドキュメント レベルのカスタマイズ

アプリケーション レベルのアドイン

サポートされている Microsoft Office アプリケーション

Excel 2007

Outlook 2007

PowerPoint 2007

Word 2007

Excel 2003

Outlook 2003

PowerPoint 2003

Project 2003

Visio 2003

Word 2003

コンポーネントにコントロールを含めることができるか

可能、専用のリボン コントロール

メニューにコントロールを追加することはできません。

ツール バーにボタンを追加できます。

デザイナベースのカスタマイズ 可能 不可

ということで、今回は Office 2007 ユーザーインターフェースのカスタマイズ手法について紹介いたします。

Office 2007 のリボンのカスタマイズは2種類あります。

デザイナベースのカスタマイズと XML ベースのカスタマイズです。

image

双方の違いについてですが、デザイナベースでできないカスタマイズについて XML ベースでおこなえるというものです。

以下がデザイナベースでできないカスタマイズで XML ベースのカスタマイズでできるものです。

  • カスタム タブまたは組み込みタブに組み込みグループを追加します。

  • カスタム グループに組み込みコントロールを追加します。

  • カスタム コードを追加して、組み込みコントロールのイベント ハンドラをオーバーライドします。

  • クイック アクセス ツール バーをカスタマイズします。

  • 修飾識別子を使用して、アドイン間でリボンのカスタマイズを共有します。

詳細は以下のリンクを参考にしてください。

リボンの概要

https://msdn.microsoft.com/ja-jp/library/bb386097.aspx

今回はデザイナベースのカスタマイズでできることについて触れてみたいと思います。

リボンデザイナコントロールの追加

手順:

1. 上記の表にある Office 2007 ソリューションを作成します。

※ここでは、Excel ブックのソリューションを例にしています。

2.[プロジェクト]-[ユーザーコントロールの追加]-[新しい項目の追加]-[リボン(ビジュアル デザイナ)]を選択します。

image

3.リボンコントロールが起動してきます。

image

4.[Group] に "Button" コントロールを追加します。

※ここでは例として、新しい "Group" と "Tab" も追加しています。

image

5."Button1" と "Button2" にコマンドを追加します。

※ここでは例として、メッセージボックスを表示しています。

6.デバッグして、"Button1" をクリックしてみます。

image

ご覧のようにカスタマイズされたタブやグループコマンドが表示されています。

このようにデザイナベースのカスタマイズは新規でカスタマイズしたメニューを追加することができます。

カスタマイズしたタブの既定のタブへの配置

前述でカスタマイズしたタブのグループは既定のタブに追加することができます。

既定のタブの正式名は以下のコントロールID 一覧に記載がありますので、ご確認ください。

2007 Office System Document: Lists of Control IDs

https://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae&displaylang=en

また、以下の資料が参考になりますが、内容的に少し分かりづらい内容かと思いますので、この場を借りてフォローさせていただきます。

方法 : 組み込みタブをカスタマイズする

https://msdn.microsoft.com/ja-jp/library/bb608593.aspx

手順:

1.[TabAddIns(ビルトイン)]タブのプロパティで [ControlIDType] で "Office " を選択し、[OfficeID] に "TabHome" と入力します。

※ TabHome とは、Office リボンユーザーインターフェースにおける "ホーム" の位置付けです。

image

2. デバッグしてみます。

image

ご覧のように "ホーム"タブの最後にグループが2つできています。

これらのカスタマイズしたグループを既定のグループの前後に置くことも可能なのですが、

1回のブログで取り上げるには内容が多くなってきましたので、次回に回してみたいと思います。

次回はカスタムグループを既定のグループの前後への配置と Office メニューのカスタマイズを紹介してみたいと思います。

ですので、ソリューションはここで保存しておいていただければと思います。