top of page

【ツール紹介】「リボンXMLエディター」紹介 XML編集によるマクロのリボン登録を劇的に効率化

更新日:10月9日

お知らせ

 本記事からダウンロードできる「リボンXMLエディター」をver1.05に更新しております。ver1.04まではアイコン検索・選択フォームのアイコン画像に画像データを使用していましたが、こちらはMicrosoftの著作権に抵触する可能性があるので、ver1.05ではこの仕組みを廃止しております。ver1.04以前のものをご使用の方はver1.05に差し替えをよろしくお願いします。


概要

 記述したマクロをいつでも・どこでも実行できるようにするために「リボンに登録する」テクニックがあります。


 事前知識としてリボン登録は

①:Excelのオプションから設定する「リボンのユーザー設定」

②:カスタムXMLの設定

の2通りがありますが、今回は②:カスタムXMLの設定のほうを指します。


 ①の方法は簡単にマクロをリボンに登録できますが、Excelブックを外部に配布した際にはその設定は引き継がれなかったり、引き継ぐにも特殊な処理が必要だったりと汎用性が低いです。

 対して、②は①に対してXMLデータを自ら記述する必要があるため(参考)、設定においては難易度が非常に高くなります。しかし、配布先でも同様にリボンからマクロが実行できるようになるためより汎用性が高い設定となります。さらに大きなメリットとして次のようなものがあります。

・アイコンの種類を幅広く設定できる

・アイコンは好きな画像を登録することもできる

・アイコンのサイズは大小選択できる

・実行するマクロをラッパー関数化することで、より幅広い実装ができるようになる(実行マクロのショートカット自動登録による連続実行、実行↔コード表示切替、実行履歴保存)


 ただ、②は「XMLデータを自ら記述する」というのが非常に敷居の高い技術であるため、なかなか②のメリットの恩恵が受けづらいというのが悲しいところです。


 その現状を解決するのが今回紹介する「リボンXMLエディター」です。「リボンXMLエディター」はカスタムXMLの設定を飛躍的に簡素化することが可能となります。

 


リボンXML設定の実用例

 百聞は一見に如かずということで、実際にリボンXML設定のよる実用例を紹介します。

 

 マニュアルメーカーbyE ver1.17以降

 当方が開発したツール「マニュアルメーカーbyE (以下:MME)」はver1.16まで各種機能をコマンドボタンから実行する形式でしたが、ver1.17以降はリボンに登録して実行できるようにしています。

リボン登録の例
リボン登録の例(マニュアルメーカーbyE)

 従来のコマンドボタン設置だと、

・ボタンを文字や色でしか表現できないので、違いが分かりづらい

・シートの表示サイズにボタンのサイズが影響される

などのデメリットがありましたが、これらがリボンに移設することで解決しています。



 開発専用アドイン「IkiAddin.xlam」

 当方が開発作業で使用している専用アドイン「IkiAddon.xlam」で実行できる開発効率化機能をリボン登録でまとめています。

リボン登録の例(IkiAddin.xlam)
リボン登録の例(IkiAddin.xlam)

 これら1つ1つを説明するのはかなり長尺になるので割愛しますが、「いつでも・どこでも」実行できるマクロを常にリボンから呼び出せるので非常に役に立っています。

 「自分専用の開発アドイン(xlamファイル)の作成」に関しては自著にて解説していますので、ぜひご参考に:https://gihyo.jp/book/2024/978-4-297-14023-6



リボンXMLエディターを使わない場合

 概要の「参考」でもリンク先を貼ったように、ExcelファイルのXMLデータを自分で変更する必要があります。


 XMLデータの編集には「Custom Ui Editor Tool」というものを利用します。


XMLデータとリボン
XMLデータとリボン

 このXMLデータですが、日本語など全角文字がちゃんと表示されなかったり、設定したアイコン(imageMSO)はXMLデータからは何を選んでいるかは分かりません。なにより直感的に作業は不可能です。


リボンXMLエディターを使った場合

 ここではリボンXMLエディターの便利さを実感いただくために、その便利機能を抜粋して説明します。


 登録可能なマクロを一覧表示

 「マクロ一覧出力」機能で選択ブックの中で記述してあるマクロのうち、リボンに登録可能なマクロを一覧で表示します。

「マクロ一覧出力」シート
「マクロ一覧出力」シート

 XMLデータを表に変換

 そのままだと見にくいXMLデータを、編集しやすいように表形式に変換します。この表をそのままExcel操作で変更し、改めてXMLデータの変換することも可能です。

XMLデータを表に変換
XMLデータを表に変換

 アイコンの検索・選択フォーム

 リボンに設定するアイコンをImageMSOの中から検索・選択できる機能

 文字列検索によって抽出したアイコンから選択することで、より素早くアイコンを選択することができるようになる。

アイコンの検索・選択フォーム
アイコンの検索・選択フォーム

 

 登録マクロの選択入力フォーム

 リボンに登録するマクロを「モジュール」→「プロシージャ一覧」の順番で選択入力ができるようにしています。さらに、登録済みのマクロ(プロシージャ名)を右クリックすると、そのコードを閲覧でき「どのような処理だったか」をすぐに確認できます。

登録マクロの選択入力フォーム
登録マクロの選択入力フォーム

リボンXMLエディターの詳細使い方

 ようやくですが、リボンXMLエディターの詳細の使い方を順序を追って説明いたします。


 ①初期設定1(UiEditorの起動パス)

 最初にインストール済みのCustomUIEditorのフルパスを取得して、入力しておきます。

 これで「UiEditer起動」ボタンでいつでも起動できるようになります。

 CustomUIEditerのインストール先参考(再掲):

①初期設定1(UiEditorの起動パス)
①初期設定1(UiEditorの起動パス)


  ②初期設定2(各種設定)

 「設定」シートにてそのほかの各種設定を行います。「アイコン選択フォーム」「アイコン画像のコメント表示」についてはデフォルトでほとんど大丈夫です。

 「ラッパー関数名」については「ラッパー関数」について詳しく説明する必要があるので、一旦ここでは割愛します。

②初期設定2(各種設定)
②初期設定2(各種設定)

 ③既存のXML表示

すでに記述済みのXMLデータがある場合ですが、ブックを選択してそのブックのXMLデータの中身を確認します。

③既存のXML表示
③既存のXML表示

 ④XMLデータを表形式に変換

③にて中身を確認したXMLデータをすべてコピーして「XML入力」シートに貼り付け、「XMLを編集UIに変換」ボタンで表形式に変換します。

④XMLデータを表形式に変換
④XMLデータを表形式に変換

 ⑤「XML編集」シートにてXMLデータの編集

表形式になったXMLデータを「XML編集」シートにて行挿入や消去などの通常のExcel操作も交えつつ、ボタンなどを利用して簡単に編集できます。

⑤「XML編集」シートにてXMLデータの編集
⑤「XML編集」シートにてXMLデータの編集

 ⑥XML表からXMLデータへ変換

「XML編集」シートで作成したXMLの表を、XMLデータに変換します。

⑥XML表からXMLデータへ変換
⑥XML表からXMLデータへ変換

 ⑦XMLデータを反映

 ⑥までで作成したXMLデータを選択ブックへ反映させる作業です。

 Custom UI Editorにコピーした後に、ブックを閉じて、Custom UI Editorにて保存。そして、改めてブックを起動させてリボンの変更結果がすぐに確認できます。

⑦XMLデータを反映
⑦XMLデータを反映


ラッパー関数について

 ここで使用しているラッパー関数はリボンから実行するマクロを、すべて同じ関数(ラッパー関数)を介して実行することで、共通の処理を持たせることを実現しています。リボンXMLエディターもこのラッパー関数を使用する前提で開発しているので、ここでラッパー関数について理解を進めていただきます。


 まず公開ツールであるMMEで説明すると、MMEで記述しているラッパー関数は次のようなものを記述しています。


 プロシージャ名は「RibbonOnAction」としていますが、別になんでもよいですが、引数に「control」というIRibbonControl型が与えられています。

 今更の説明ですが、実はこの引数「control」を入れておかないと、そのマクロ(プロシージャ)はリボンには登録ができません。ですので、既存のマクロをリボンに登録しようと思った場合は、それらすべてに別個、引数「control」を用意したプロシージャを準備する必要があります。


 次に「SetRibbonClick_ShowCode」にてコード表示モードに切り替え、「SetRibbonClick_OnAction」にてコード実行モードに切り替えができます。この2つもリボン登録マクロとして登録しておいて、いつでもこの2つのモードを切り替えできるようにしてあります。

コード表示、実行モードの切替
コード表示、実行モードの切替

 ここで引数controlについて説明すると、これはクリックされたリボンの情報を持っています。上記のRibbonOnActionでは変数「ProcName」を「control.IDプロパティ」で取得しています。このIDプロパティは「xml編集」シートのF列のidで設定した「実行する関数名(マクロ名)」となっております。この関数名(ProcName)をもとに

Application.Runで実行したり

Application.Gotoでコードを表示したり

Application.OnKeyで連続実行用のショートカットを設定したり

などいろんなことができるようになります。

 

 ちなみにMMEに記述しているラッパー関数は様々な機能を実装しているため、少し複雑となっておりますが、「実行するだけ」のラッパー関数であれば下記のようなものだけでも大丈夫です。

 

 実際にリボンXMLエディターでリボンを設定するブックには、このようなラッパー関数を1つ記述してリボンを設定するようにしてください。

 また説明が舞い戻りますが、初期設定において設定する「ラッパー関数名」はその際に記述したラッパー関数の関数名を入力しておけば「xml編集」シートでボタンから簡単に入力できるようになります。

リボンXMLエディターの設定
リボンXMLエディターの設定

リボンXMLエディターのダウンロード

リボンXMLエディターのダウンロード先です。

圧縮ファイルを解凍して「リボンXMLエディター ver1.06 xlsm」を使用するようにしてください。


↓旧バージョン


コメント

5つ星のうち0と評価されています。
まだ評価がありません

評価を追加

​タグ一覧

配列処理(44)

階層化フォーム(33)

ファイル操作(22)

シート・セル操作(11)

コード自動生成(10)

ユーザーフォーム(8)

図形操作(7)

GAS(5)

技術解説(4)

副業(4)

考え方(4)

介護(4)

条件付き書式(4)

イミディエイトウィンドウ(3)

Enum(3)

Googleスプレッドシート(3)

ココナラ(3)

アニメーション(3)

クリップボード(3)

イベントプロシージャ(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Excel(2)

Excel小ネタ(2)

数学(2)

Outlook(2)

文字列操作(2)

小説(2)

HTML(2)

JavaScript(2)

日報(2)

シフト(2)

カレンダー(2)

ショートカット(2)

パズル(2)

ステータスバー(1)

開発効率化(1)

コード解析(1)

静的変数(1)

OneDrive(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

六角形(1)

Excel遊び(1)

ボウリング(1)

時計(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

イベント(1)

溶接ロボット(1)

VBA(1)

脱Excel(1)

Discord(1)

ECサイト(1)

CSV(1)

楽天(1)

保育士(1)

シフト表(1)

CDP(1)

楽天市場(1)

経理(1)

javascript(1)

医療(1)

文書作成(1)

LookerStudio(1)

セキュリティ(1)

発注書(1)

公開ツール(1)

WebAPI(1)

色操作(1)

罫線(1)

セル着色(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page