環境:
Visual Studio 2010 (RTM)
Office 2010
Visual Studio 2010 & Office 2010 UI 開発新機能
- バックステージビュー (backstage)
- コンテキストメニュー (context menu)
- リボンの AutoScale
- リボンタブのプログラムコードによる選択 (アクティベート)
こんにちは。
さいごに、実は、非常にニーズの高いこの機能についてご説明します。
せっかく Office でリボンを開発したのですから、そのリボンのタブが “あっ、実は入ってたのね ?” では意味がありません。せっかく作ったリボンタブですから、当然、このタブを最初に見せておきたいというニーズはあります。
Office 2010 & Visual Studio 2010 の開発では、プログラムコードを使ったリボンタブの選択が可能です。このため、上記のようなニーズにも対応することが可能になっています。
では早速、この機能を使ってみましょう。
まず、今回は、アドインでなく、ワークブックのプロジェクトなので、Visual Studio 2010 を開き、[Excel 2010 Workbook] のプロジェクトを新規作成します。(ターゲットフレームワークは、.NET Framework 4 とします)
[追加] – [新しい項目] で、[リボン (ビジュアルデザイナー)] を選択してカスタムのリボンを追加します。
追加されたリボンで、Id 属性 (ControlId) を設定しておきましょう。
今回は、組み込みのタブを使用せず、独自にタブを追加するので、下図の通り [ControlIdType] プロパティを「Custom」、[Name] プロパティ (これが Id になります) を「MyTab1」とします。
適当にリボンのデザイン (タブ名の変更、ボタンの配置、など) をおこなってください。(ここは、省略します)
さて、今日のポイントは以下です。
Ribbon1.cs を表示し、引数から取得される IRibbonUI オブジェクトに対して、以下の通り ActivateTab メソッドを実行します。
private void Ribbon1_Load(object sender, RibbonUIEventArgs e){ e.RibbonUI.ActivateTab("MyTab1");}
F5 で実行すると、Excel 表示時に、上記で追加したカスタムのタブが表示時にアクティベート (選択) されているのが確認できるはずです。
ちなみに、アドインでも同様のことができますが、アドインでこれを実施してしまうと、いろいろなアドインを入れたときに “取り合い” (早いもの勝ち) になってしまうので、実際には、ドキュメントレベルのソリューションで使用するのが良いでしょう。
ご参考 : なお、状況に応じてリボンに表示される Conrtextual Tab を制御するには、リボン XML の <ContextualTabs /> を使用します。標準で組み込まれた既存の Contextual Tab の表示 / 非表示などを制御できます。
Categories: Uncategorized
3 replies»