Uncategorized

[Visual Studio 2010 による Office 開発] リボンタブのプログラムコードによる選択 (アクティベート)

環境:
Visual Studio 2010 (RTM)
Office 2010

Visual Studio 2010 & Office 2010 UI 開発新機能

こんにちは。

さいごに、実は、非常にニーズの高いこの機能についてご説明します。

せっかく 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

Tagged as:

3 replies»

Leave a Reply