コンピュータや音楽の事書いてます

MS Office リボンを作る時のメモ

MSDNのドキュメントはどこに何が書いてあるのか探すの大変なので、転載しておく。リンクしても勝手に移動されるので。
あと、サンプルは本家よりも http://homepage2.nifty.com/suyamsoft/Ribbon/Sample/index.html の方が100倍使える。
コールバック関数 http://mukkumuku.blogspot.jp/2010/06/ribbonui-vba-callback-signature.html

Office XML 形式のファイルの編集によるリボン ユーザー インターフェイスのカスタマイズ

><
以下の手順は、Excel 2007 でマクロ有効ブック ファイルを編集することによって、カスタム マクロを呼び出すコンポーネントを含むカスタム リボン ユーザー インターフェイス (UI) を作成する方法を示します。このサンプルでは、以下のことを行います。

マクロを 1 つ持つ Excel ブックを作成し、Office XML 形式のマクロ有効ファイル (.xlsm) として保存します。

リボンを拡張するためのカスタマイズ ファイルを作成し、タブを 1 つ、グループを 1 つ、ボタンを 1 つ持たせます。

ドキュメント内に作成したマクロを呼び出すボタンに、コールバック イベントを指定します。

マクロ有効ドキュメントのコンテナ ファイルのコンテンツを編集して、リボン拡張のためのカスタマイズ ファイルを指すようにします。

マクロ有効ファイルを保存し、Excel でそれを開きます。

Excel でマクロ有効 Office XML 形式のファイルを作成するには

Excel 2007 を起動します。

[開発] タブをクリックし、[Visual Basic] をクリックします。

Aa338205.note(ja-jp,office.12).gifメモ :
[開発] タブが表示されていない場合は、自分を開発者として指定する必要があります。これを行うには、アプリケーション内で Microsoft Office ボタン をクリックし、[Excel のオプション]、[基本設定] の順にクリックし、[[開発] タブをリボンに表示する] チェック ボックスをオンにします。これはグローバルな設定です。このように設定すると、リボン UI が実装されている他のすべての Office アプリケーションでも自分が開発者として識別されるようになります。

Visual Basic Editor で、[ThisWorkbook] をダブルクリックして、コード ウィンドウを開きます。

次の VBA サブルーチンを入力してから、Visual Basic Editor を閉じます。

VB

    Sub MyButtonMacro(ByVal ControlID As IRibbonControl)
       Msgbox("Hello world")
    End Sub

ブックを Office XML 形式のマクロ有効ファイル (.xlsm) として保存します。

UI を変更するためのマークアップを含む XML ファイルを作成するには

デスクトップ上に「customUI」というフォルダを作成します。

テキスト エディタで新規ファイルを作成し、それを「customUI.xml」という名前で [customUI] フォルダに保存します。

次のコードをファイルに追加します。

XML

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon startFromScratch="true"> 
          <tabs> 
             <tab id=":CustomTab" label="My Tab"> 
                <group id="SimpleControls" label="Sample Group"> 
                   <button id="Button1" size="large" label="Large Button" 
                      onAction="ThisWorkbook.MyButtonMacro" /> 
                </group> 
             </tab> 
          </tabs> 
       </ribbon> 
    </customUI> 

次に、前の手順で作成したマクロ有効ファイルのコンテナに含まれているいくつかのファイルを以下のように編集します。

ブック ファイルの名前に .zip という拡張子を追加し、ファイルをダブルクリックして開きます。

customUI フォルダをデスクトップから ZIP ファイルにドラッグして、カスタマイズ ファイルをコンテナに追加します。

.rels ファイルをデスクトップに抽出します。.rels ファイルの入った _rels フォルダがデスクトップにコピーされます。

.rels ファイルを開いて、最後の Relationship タグと Relationships タグの間に次の行を追加します。これにより、ブック ファイルとカスタマイズ ファイルの間のリレーションシップが作成されます。

XML

    <Relationship Id="someID" Type="http://schemas.microsoft.com/office/2006/relationships/ui
    /extensibility" Target="customUI/customUI.xml" /> 

ファイルを保存して、閉じます。

_rels フォルダをデスクトップからコンテナ ファイルにドラッグして戻します。既存ファイルは上書きします。

.zip 拡張子を削除して、ブック ファイルの名前を元に戻します。

ブックを開いて、リボン UI に [My Tab] が表示されるようになったことを確認します。

ボタンをクリックします。メッセージ ボックスが表示されます。
><