カスタム検索
リボン関連

リボンのタブを動的に切り替える(Office 2010)

※ この情報はOffice 2010 Public Beta版を元にしています。製品版では変更になる可能性がありますのでご注意ください。

 

今回はマクロでリボンのタブを切り替える方法を紹介します。

 

組込タブを切り替える場合

1. Officeファイルを開きます(今回はExcelファイル)。
2. 標準モジュールに下記コードを貼り付けて上書き保存した後、ファイルを閉じます。

Private myRibbon As IRibbonUI

Sub Ribbon_onLoad(ribbon As IRibbonUI)
  Set myRibbon = ribbon
End Sub

Sub TestActivateTabMso()
  Call myRibbon.ActivateTabMso("TabDeveloper")
End Sub
3. Custom UI Editor Toolで2.のファイルを開きます。
4. 下記コードを貼り付け、上書き保存します。
<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui" />
5. 4.のファイルをマクロを有効にして開き「TestActivateTabMso」を実行すると、「開発」タブが選択されることが確認できます。


※ 上記のように「ActivateTabMso」メソッドを実行することで、組込タブを動的に切り替えることができます。
※ 「ActivateTabMso」メソッドの引数で組込タブのControlIDを指定します。

 

ユーザ定義タブを切り替える場合

1. Officeファイルを開きます(今回はExcelファイル)。
2. 標準モジュールに下記コードを貼り付けて上書き保存した後、ファイルを閉じます。

Private myRibbon As IRibbonUI

Sub Ribbon_onLoad(ribbon As IRibbonUI)
  Set myRibbon = ribbon
End Sub

Sub TestActivateTab()
  Call myRibbon.ActivateTab("customTab")
End Sub
3. Custom UI Editor Toolで2.のファイルを開きます。
4. 下記コードを貼り付け、上書き保存します。
<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>
      <tab id="customTab" label="Contoso" insertAfterMso="TabHome">
        <group idMso="GroupClipboard" />
        <group idMso="GroupFont" />
        <group id="customGroup" label="Contoso Tools">
          <button id="customButton1" label="ConBold" size="large" onAction="conBoldSub" imageMso="Bold" />
          <button id="customButton2" label="ConItalic" size="large" onAction="conItalicSub" imageMso="Italic" />
          <button id="customButton3" label="ConUnderline" size="large" onAction="conUnderlineSub" imageMso="Underline" />
        </group>
        <group idMso="GroupEnterDataAlignment" />
        <group idMso="GroupEnterDataNumber" />
        <group idMso="GroupQuickFormatting" />
      </tab>
    </tabs>
  </ribbon>
</customUI>
5. 4.のファイルをマクロを有効にして開き「TestActivateTab」を実行すると、「Contoso」タブが選択されることが確認できます。


※ 上記のように「ActivateTab」メソッドを実行することで、ユーザ定義タブに動的に切り替えることができます。
※ 「ActivateTab」メソッドの引数でユーザ定義タブ(tab要素)のid属性を指定します。

 

COMアドインタブを切り替える場合

1. 名前空間とタブのControlIDを調べるため、オプション画面から対象となるCOMアドインタブを非表示にします。

2. テキストエディタで「officeUI」ファイルを開き(officeUIファイルの場所は「カスタマイズしたリボン情報(Office 2010)」参照)、名前空間(下図例では「PDFMaker.OfficeAddin」)とタブのControlID(下図例では「tab1」)を一旦別のテキストにコピーしておきます。

3. 名前空間とControlIDコピー後、非表示にしたタブを再度表示します。
4. Officeファイルを開きます。
5. 標準モジュールに下記コードを貼り付けて上書き保存した後、ファイルを閉じます(※ このとき2.でコピーした名前空間とControlIDをActivateTabQメソッドの引数にします)。

Private myRibbon As IRibbonUI

Sub Ribbon_onLoad(ribbon As IRibbonUI)
  Set myRibbon = ribbon
End Sub

Sub TestActivateTabQ()
  Call myRibbon.ActivateTabQ("tab1", "PDFMaker.OfficeAddin")
End Sub
6. Custom UI Editor Toolで5.のファイルを開きます。
7. 下記コードを貼り付け、上書き保存します。
<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui" />
8. 7.のファイルをマクロを有効にして開き「TestActivateTabQ」を実行すると、「Acrobat」タブ(COMアドインタブ)が選択されることが確認できます。


※ 上記のように「ActivateTabQ」メソッドを実行することで、COMアドインタブに動的に切り替えることができます。
※ 「ActivateTabQ」メソッドの引数でCOMアドインの名前空間とタブのControlIDを指定します。

 

アドインタブを切り替える場合

1. アドインタブのControlIDを調べるため、アドインファイルをZip解凍します。

2. テキストエディタでカスタムUI用のXMLファイルを開き、タブのControlID(下図例では「tabWAR」)を一旦別のテキストにコピーしておきます。

3. Officeファイルを開きます。
4. 標準モジュールに下記コードを貼り付けて上書き保存した後、ファイルを閉じます(※ このとき2.でコピーしたControlIDとアドインファイルのフルパスをActivateTabQメソッドの引数にします)。

Private myRibbon As IRibbonUI

Sub Ribbon_onLoad(ribbon As IRibbonUI)
  Set myRibbon = ribbon
End Sub

Sub TestActivateTabQ()
  Call myRibbon.ActivateTabQ("tabWAR", "C:\Documents and Settings\(ユーザ名)\Application Data\Microsoft\AddIns\News And Weather.xlam")
End Sub
5. Custom UI Editor Toolで4.のファイルを開きます。
6. 下記コードを貼り付け、上書き保存します。
<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui" />
7. 6.のファイルをマクロを有効にして開き「TestActivateTabQ」を実行すると、「News And Weather」タブ(アドインタブ)が選択されることが確認できます。


※ 上記のように「ActivateTabQ」メソッドを実行することで、アドインタブに動的に切り替えることができます。
※ 「ActivateTabQ」メソッドの引数でアドインのフルパスとタブ(tab要素)のid属性を指定します。