(22) Ribbon UIカスタマイズの把握
具体的な実装方法はいろいろありますが、基本はcustomUI.xmlってことで。
ちょっと説明が長くなりますが、
- 2007OfficeSystemで作成したドキュメントファイルは、基本的にzipファイル。
- ので、例えば.xlsxファイルの拡張子を「.zip」に変えてやればアーカイバでふつーに閲覧可能。
- ドキュメントファイル(=zipファイル)の中に「customUI」ってフォルダを作ってやって、その中にRibbonUIの指定を記述した「customUI.xml」ってファイルを格納してやると、そのドキュメントファイルを読み込んだ時にそのカスタマイズが有効に。
ってこってすね。
で、xmlに動作ロジックを埋め込むことはできませんので、その部分はVBAなり.NETなり(VBとかC#とか)で作ってやってcustomUI.xmlとひもづけてやるわけです。
customUI.xml相当の情報までVBA/.NET側に埋め込むこともできますが、制御されるOffice側のインターフェイスは同じなわけですから、UIデザインを考えるなら、まずはcustomUI.xmlで試行錯誤するのが一番お手軽でしょう、と私の中ではほぼ決まり。
VSTOのリボンデザイナもかなり楽ちんなんですが、customUI.xmlで記述できるすべてをフォローしているわけではありません。デザイナでは提供されていないが実は実装可能、な機能もありますので、全幅の信頼を置けないのがちょいとつらいかも。
もちろんデザイナで実装できる機能についてはシームレスにコールバックメソッドまで書けるので便利です。
ので、RibbonUIの制御は一度ちゃんと仕様書とか読んで把握して、リボンデザイナは素早く作るために使う、ってあたりがいい感じでの使い分けかもしれません。
さて、ではVSTOのお世話にならずにどうやってcustomUI.xmlを書いてやればいいのかと。
アーカイバとテキストエディタ(or XMLエディタ)でもできますが、もうちょい楽ちんに書きたいもんだと。
そんなあなたにそして私に、
customUI.xmlのテンプレート(またはその改造もしくは完全自作記述)とOfficeドキュメントファイルの両方を読み込んで保存してやれば、そのcustomUI.xmlがドキュメントファイルに埋め込まれます。
あとは実際にそのドキュメントファイルを開いてUIの表示を確認すればよろしいわけです。
でもCustom UI Editorはマージ保存がキモのソフトで、UIエディタとしてはメモ帳程度の機能しか持っていなかったり。
そこで、UI記述のサンプルを提供してくれているのが
Change the ribbon in Excel 2007
なんてところで。
このページではコントロールIDの資料(microsoft公式版やジャンル別に抽出できるマクロ埋め込みのオリジナル版)や、Custom UI Editorの使い方、各種Tipsや「最近使用したドキュメント」の非表示の仕方(これはちょいと試行錯誤中らしく、「問題が起きたりサジェエスチョンがあれば連絡してねー」とか書いてあります)などかなり実践的かつ興味深い言及てんこ盛り。
とりあえずここを把握すればRibbonUIについては大まかにおっけーなんではないでしょうか。
