#author("2018-05-26T13:22:00+09:00","default:mat2umoto","mat2umoto") #contents *前提条件 [#ef632bb8] カスタムリボンは、Microsoft Office 2007以降のアプリであれば可能だが、ここではExcel2007を対象に記述する。 *参考サイト [#c47082af] -[[チュートリアル:http://homepage2.nifty.com/suyamsoft/Ribbon/index.html]] -[[XMLリファレンス:http://msdn.microsoft.com/ja-jp/library/aa338199(printer).aspx]] -http://www.ka-net.org/blog/?cat=1 *用意するもの [#l4161073] -Microsoft Excel 2007 -[[Office Custom UI Editor:http://openxmldeveloper.org/articles/CustomUIeditor.aspx]] -UTF-8 を編集可能なテキストエディタ ※Office Custom UI Editorに替わる、Office Ribbon Editorというツールもあるみたい。 *手順 [#j3ab3833] **Excelアドインファイルの準備 [#ia3e69df] カスタムリボンは、Officeのアドインファイルとして用意することになる。 +Excelを起動する。 +何も編集せずに、Excelアドインファイル(*.xlam)として保存する。(例:custom.xlam) **customUI.xmlの埋め込み [#gb7df593] カスタムリボンの外観は、XMLファイルで記述される。その雛型を埋め込む。 +Office Custom UI Editorを起動する。 +先ほど保存した「custom.xlam」を開く。 +メニューの「Insert」-「Office 2007 Custom UI Part」を選択。 +画面左側のツリービューに「customUI.xml」が追加されるので、選択する。 +メニューの「Insert」-「Sample XML」-「Excel - A Custom Tab」を選択する。 +上書き保存する。 **customUI.xmlの編集 [#p9fa10b5] ここからテキストエディタでXMLファイルを編集していくが、全角文字を使うつもりがなければ引き続きOffice Custom UI Editorを使用することもできる。~ (Office Custom UI Editorを使う場合は、以下のZIP解凍/再圧縮の手順は必要なくなる) +「custom.xlam」をZIP解凍する。 +先ほど埋め込んだXMLファイル「\customUI\customUI.xml」をテキストエディタで開く。 +【重要】1行目を以下のように変更する。 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> CENTER:↓ <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> ※「2009/07」はOffice2010用。Office2007の場合は「2006/01」とする必要がある。 +先頭に以下の行を追加する。 <?xml version="1.0" encoding="utf-8"?> +あとは好みにカスタマイズしていく。(タグの説明等は後述) XMLファイルの内容は、以下のようになっているはず。~ このままアドインとして登録すると、埋め込まれたサンプルを動作させることができる。 #code(xhtml){{ <?xml version="1.0" encoding="utf-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2006/01/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> }} +文字エンコードを「UTF-8」として上書き保存する。 +解凍したファイル群を、再圧縮する。 解凍したファイル群のトップは、以下のような構造になっているはず。~ ・_rels~ ・customUI~ ・docProps~ ・xl~ ・[Content_Types].xml~ これらのファイルを全選択した状態でZIP圧縮する。~ ※新しくフォルダを作ってこれらのファイルを入れてから圧縮したりしないこと。Excelファイルの内部構造が変わってしまい、正常に動作しなくなる。 +圧縮したファイルをリネームする。 圧縮したファイルは、「*.zip」となっているはずなので、最初の「custom.xlam」という名前に戻しておく。 **CallBack関数の作成 [#n8642bda] XMLで指定したコントロールの動作の定義は、CallBack関数で行う。 +「custom.xlam」を開く。 +VBEを開き、標準モジュールを挿入する。 +XMLに定義したCallBack関数をPublicで作成する。~ ※XMLに全角文字を使用していない状態であれば、Office Custom UI Editorの「Generate Callbacks」ボタンを押すことで関数定義の雛型を表示してくれる。 +上書き保存する。 **Excelにアドインとして登録 [#s8ed56e8] +「custom.xlam」を以下の場所に置く。 C:\Documents and Settings\[ユーザ名]\Application Data\Microsoft\AddIns +Excelを起動し、「Officeボタン」-「Excelのオプション」-「アドイン」の画面を開き、下の方の「設定」ボタンを押す。 +有効なアドイン一覧に「Custom」があるはずなのでチェックを付け「OK」を押す。 +以上で完了。アドインをアンインストールするときは、チェックを外してからアドインファイルを削除すればよい。 *XMLファイルのタグ [#o8d1de8b] *Word2007の場合 [#o17d0752] 以下の点に気をつければ、Excelと同じ手順でOK。~ -Wordにはアドインファイルという種類のファイルは無いので「*.dotm」として作成する。 -作成したdotmファイルを以下に置くと、自動的にロードされる。 C:\Program Files\Microsoft Office\Office12\STARTUP -マクロを修正する場合、上記フォルダにdotmファイルを置いた状態だとVBEでコードの編集等ができないので、一度別のフォルダに移動してから開いて編集すること。