【customUI.xml】リボンのカスタマイズでエラー

MicrosoftOffice製品のリボンは、2007から実装され、カスタマイズが容易なので、私は自分でカスタマイズして使っています。自作したマクロを登録しておくのに便利です。

今回久々にWordのリボンのカスタマイズをやったら、単純なXMLなのになぜかエラーとなり、うまくいきませんでした。

原因と対処を、自分の覚えとして記事にします。

やりたかったこと

やりたかったのは、この記事で紹介したボタンを追加するリボンです。

自作ボタン

これを実現するためには、いったんWordのドキュメントをZIPにして、エクスプローラーで開き、中に入っているフォルダのフォルダ構成をいじって、customUI.xmlというテキストファイルを追加します。

詳しいやり方は、こちらを参照してください。私のこの記事では解説しません。

途中まで解説しようかと思い作成した手順。しかしここまで作成したところで、「私が解説しなくても、他の人がたくさん解説しているからいいか」という気持ちになり、ここまでです。すみません。

エラー

今回起きたエラーは、次のような現象です。

タブが生成されない不具合

エラーメッセージも何も出ず、ただ、うまくボタンが表示されない(ボタンのあるタブ自体が表示されない)という不具合でした。

原因

原因は文字コードにありました。

customUI.xmlを文字コードUTF-8で作成しないといけないのですが、Shift-JISになっていました。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="myRbn_onLoad"> 
   <ribbon> 
     <tabs> 
       <tab id="ToolsTab1" label="Tools"> 
         <group id="ToolsGroup1" label="Tools Group"> 
           <toggleButton id="myTgl" label="参照設定着色" imageMso="HappyFace" size="large" supertip="参照設定の着色オンとオフを制御します" onAction="myTgl_onAction" getPressed="myTgl_getPressed" />
         </group > 
       </tab> 
     </tabs> 
   </ribbon> 
 </customUI>

上記のとおり、見た目では分かりません。

秀丸エディタで文字コードを確認したところ。Shift-JISになっている。

最初にcustomUI.xmlを起こしたときに文字コードの設定をUTF-8にしたのですが、その後編集過程において日本語文字(漢字)を挿入したタイミングで、エディタの自動判定機能が働き、文字コードが変えられてしまったのでした。

これに気づくまで4時間くらいかかりました・・・。まさかエディタに足元をすくわれるとは。XMLの記述になにか間違いがあるのかと、全然見当違いのところをずっと調べ、無駄に時間を費やしてしまいました。疲れました。

対策

対策としては、XMLに最初に正しい文字コードを設定することです。

<?xml version="1.0" encoding="utf-8"?>

冒頭部分にこのようにencodingを入れ、エディタで保存するときにも文字コードを確認するようにしました。

これでようやく不具合が解消しました。

感想

久しぶりにXMLをいじると、けっこう忘れていることが多くて、単純なミス(文字コードを確認するなんて、初歩の初歩)もするし、散々でした。

使わない技術は衰えますね。

ということで、次回同じミスをしないように、自分のために記事にしました。