リボン XML を利用した Office メニューのカスタマイズ(基礎編)
[今日のみちしるべ 第18回 News 23 筑紫哲也 多事総論 風ですが。。。]
Office のリボンXMLにはまっている訳ではないのですが、
リボン XML を利用した Officeメニューのカスタマイズを記事にしようとしていたら、マイクロソフトからのリンクとして貼れる情報がほとんど無いことに気がつきました。
だから、今日は自分たちに苦言です。
「開発者のための IT Pro のための情報を整えています!」とマイクロソフトは言っていますが、情報を整備している人たちは何が開発者や IT Pro にとって必要なのかをあまり分かっていないのかもしれません。
マイクロソフトの社員は日々、こういうことをお客様やパートナー様に散々言われています。そこで、漸くメスを入れようとしてはいますが、この状況だと何も変わらないと思います。
内部の者も声を上げ始める必要があると思います。何が必要で何が不必要なのかを。
開発者やIT Proのための分かりやすい情報は開発生産性を上げコストを下げます。
逆にカスタマイズに工数がかかるとマイクロソフトの製品は採用されにくくなります。
マイクロソフトの製品はカスタマイズ無しにしては語れません。それはどのようなシーンでも当てはまる汎用的な既製品だからです。
だからこそ、開発者の方々や IT Pro の方々のメシの種を増やすということにつながるのかと思うのですが、それを増やすことはマイクロソフトにとってもメシの種です。
今はもう、IT に対して熱い時代ではありません。
IT が熱い頃は皆が競いあって情報を収集していました。皆が知らない情報を知っている技術者やシステム構築で困難を乗り越えられる技術者はヒーローでした。
一時期の MCP や MCSE の取得熱がそうであったのではないでしょうか。
そんな状況でしたら、昔のような自分が勉強せざるを得ないようなレベルの情報でよいのかもしれません。
しかし、今は時代が違います。
我々が若い頃はハードウェアの仕組みから PC に入りました。
CPU があり、メモリがあり、大容量記憶領域があり、2進、16進があり、アセンブラがあり、C があり。
私もエンジニア時代はデバッガをかけて、MS の問題かドライバの問題かなどをやったりしていました。
ネットワークモニターを利用してパケットを追ったり、ネットワークのコマンドを利用して問題を切り分けたり、パフォーマンスモニタを利用してリークの調査をしたり、あらゆるツールを駆使しそれに伴う要素技術を理解しながら今を迎えています。
昔はこれが普通なのです。IT に携わる最低条件であったと思います。
今は勉強しなくても、「形骸的なサンプルがあってそれが動けばいい時代」、「トラブルシュートはシステムがやってくれる時代」といっても過言ではない気がします。
メモリリークでカーネルモードやユーザーモードの事を気にしている技術者やあらゆるツールを駆使して問題を切り分け、原因を追究する技術者は少ないかもしれません。
製品自体が技術者に考えさせないようになってしまったからもありますが、時代の早さも、自分が時間をかけて触って理解して血肉にするということができない状況になっていると思います。
なので、昔と同じような情報の提供の仕方ではだめだと思います。
もっとわかりやすく顧客ニーズがあるサンプルや技術要素の紹介の仕方がないと今のこれからの技術者は育たないかもしれません。
そのような状況でマイクロソフトの製品はカスタマイズが大変だと、コストがかかる思われてしまったら、今の開発者、IT Pro は去っていきます。
もしも、社内の情報整備の担当の方でこのブログを読んでいらっしゃいましたら、現場でお客様やパートナー様のシステムを構築している提案している我々に何が必要かを聞いてみてください。
我々もお客様、パートナー様の声が伝わるように努力しますので。
[本題]
前の流れからするともう読んでもらえない気がしますが(笑)。
リボン XML を利用した Officeメニューのカスタマイズの基本編のお話です。
笑えるくらい本当に情報がないのですが、下記が Office メニューのカスタマイズの基本的なコードです。
少し解説したいのですが、<ribbon startFromScratch="true"> を宣言すると既存メニューのほとんどが非表示になります。
図を見ていただければ分かると思いますが、Office メニューでは、「新規作成」、「開く」、「上書き保存」のみです。
図1.<ribbon startFromScratch="true">を有効にした Office メニュー
クイックアクセスツールバーもすべてのコマンドがグレーアウトしています。
図2.グレーアウトしたクイックアクセスツールバー
このようにまっさらの状態にしてカスタムのメニューやコマンド、タブを追加していくことが可能です。
Office の特定のドキュメントを業務アプリケーションとして利用したい場合には有効なカスタマイズになります。
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="https://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
<!--既存メニューのほとんどを非表示にするおまじないです。-->
<ribbon startFromScratch="true">
<!--一度、まっさらにした UI に以下のメニューとタブを追加します。-->
<officeMenu>
<menu id="SalesTools" label="営業ツール">
<button id="SalesTool1" label="商談状況確認"/>
<button id="SalesTool2" label="商談登録"/>
<button id="SalesTool3" label="売上登録"/>
</menu>
</officeMenu>
<tabs>
<tab id="Customer" label="顧客"></tab>
</tabs>
</ribbon>
</customUI>
上記のサンプルを Ribbon.xml に貼り付けることで以下のようなメニューになります。
図3.カスタムメニューとコマンドの追加
図4.カスタムタブの追加
次回はたぶん、このサンプルを利用した応用編をやると思います。
といってやらないパターンも多いのですが。。。