EXCELのアドインには三種類ある。
- EXCEL VSTOアドイン(EXCEL COMアドインとも呼ばれる)
- EXCEL XLLアドイン
- EXCEL VBAで作成するxlamアドイン
だ。
マイクロソフト社の統合開発環境Visual Studioを使うと、C#やVB.NETなどのプログラミング言語を使って①EXCEL VSTOアドインを作成する事が可能だ。
かつ、Visual StudioのVSTOアドインプロジェクトでリボンを作成する場合にはビジュアルなエディターが使えるので、ボタンやチェックボックスなどの部品を描画域にドラッグドロップで配置して自分の好きなリボンをデザインする事も可能だ。
そのようにして作成したリボンをエクセルに読み込めば、リボンには自作のボタンが表示出来る。
それらのボタンをクリックすると、C#やVB.NETで記述した関数を実行してエクセルのデータを操作する事が可能となる。
Visual Studioは有料製品だが、Visual Studio Communityは無料なのでお勧めだ。
次に、② EXCEL XLLアドインは同じくVisual StudioのC/C++言語を使って作成する。
XLLでリボンを作成する方法が有るのかどうかに関しては、ワテが調べた限りでは作成する方法を見付ける事が出来なかったのだが、でも、それはネット上にXLL開発に関する情報が少ないだけであり、XLLでもリボンの開発は出来るような気がする。いずれにしても真偽の程は定かではない。
この件は、引き続き調査中だ。
さて、③EXCEL VBAに関しては、ワテの知る限りリボンを作成する機能は無い。
つまり、何かの関数を実行したらリボンにボタンやチェックボックスなどを追加出来るなどの機能は無さそうである。ただしEXCEL2003でメニューバーにメニュー項目を追加するVBAコードならこんな感じ。
Set cmdBar = Application.CommandBars("Worksheet Menu Bar") Set ctrls = cmdBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
それをEXCEL2007以降で実行するとリボンにメニューが追加出来る。
では、ボタン、チェックボックス、ラジオボタンなどもリボンに追加したい場合はどうするか?ワテが調べた限りでは、VBAでは出来ないようだ(100%確証がある訳では無いが)。
兎に角、VBAプログラミングで各種の関数を自作した場合、リボンに配置したボタン、チェックボックス、ラジオボタンなどのコントロールと連携出来ればとっても便利だ。
どうにかしてVBAでもリボンに本格的なユーザーインターフェースを追加して利用する事が出来ないだろうか?
当記事は、そんな貴方のお悩みを解決する目的で作成した。
結論としては、多少ヘンテコな手法であるが、幾つかの無料ツールを組み合わせれば自作のリボンを作成して、それを自作のxlamアドインやxlsmマクロ有効ブックに組み込む事が可能だ。
では、本題に入ろう。
Officeのリボンユーザーインターフェースとは何か?
リボンユーザーインターフェース(Ribbon UI)は、Office 2007で導入された。
ワテが使っているEXCEL2013の例を下図に示す。
図 EXCEL2013のリボンの例
まあ要するに、リボンと言うのは上図の赤枠で示す部分にある多数のタブ、そのタブの中にある多数のアイコン類を指す。
一方、EXCEL2003までは、メニューバーとアイコンが表示されている形式だった。
図 EXCEL2003のメニューバーとアイコンの例
上図のようなメニューバーとアイコンの形式は、Windowsが長年に渡り採用していたユーザーインターフェースだった。
Office2007のリボンでは、従来式のメニューやアイコン形式のユーザーインターフェースが廃止されて、行き成り今まで見た事も触った事も無い「リボンユーザーインターフェース」なんてのが登場したもんだから、世の中が大混乱したのはよく覚えている。
その結果、EXCEL2007のメニューをEXCEL2003風にするなんて言うフリーソフトが幾つか登場したのも覚えている。
今ではリボンユーザーインターフェースが普及したので、昔のメニューを知らない人も多い。
リボンユーザーインターフェースの使い勝手は良いのか悪いのか、それは色んな意見があると思う。
ワテの意見としては、旧式メニューインターフェースも新式リボンユーザーインターフェースも、どちらも慣れれば問題無く使いこなす事は可能だ。
要するに、どの機能がどこに有るかを覚えれば良いからだ。
ただし、リボンユーザーインターフェースの場合、何でこの機能がこのタブにあるの?って言うようなものもある。
つまり、リボンユーザーインターフェースの各タブの設計が、必ずしも良いとは思えない。
まあ、万人に受け入れられる完璧な分類は無理だと思うので、多数決的な案が採用されたのかもしれない。
でも、ワテがリボンユーザーインターフェースを設計するなら、利用者が自由にリボンの中の項目をドラッグドロップで編集できる構造にするなあ。
そしたら、何でこの項目がこのタブにあるの?こっちのタブにあるほうが使い易いんじゃないの?と言った要望も解決出来るからだ。まあ、そんな機能を実装するのはやれば出来るとは思うが、面倒なのでマイクロソフト社はやらないんだろうなあと勝手に推測している。
さて、本題に戻ろう。
XLAMアドインを作成する
XLAMアドインは、XLSMマクロ有効ブックとよく似ている。
XLSMはシートが表示されていてマクロやモジュールが付属しているブックだ。
ワテの理解では、XLSMファイルを保存する時にXLAM形式で保存すると、シートが非表示のXLAMアドインに出来る。
要するにXLAMとXLSMの違いは、単にシートが表示か非表示かの違いだけだと思うが、あくまでワテの理解である。
もっと本質的な違いがあるのかも知れない。
まずはXLAMアドインを作成する
まずは、XLAMアドインを作成してみよう。
下図のように新規にBook1.xlsxを作成する。
そのブックに於いて、「開発」タブを開く。
図 開発タブのVisual Basicアイコンをクリックする前
開発タブが見当たらない人は、
ファイル → オプション → リボンのユーザー設定
で「開発」にチェックを入れれば良い。
標準モジュール Module1にコードを追加
開発タブのVisual Basicアイコンをクリックすると下図のVBAエディタが開く。
標準モジュールを一個追加する。
図 標準モジュール Module1を追加する
標準モジュール Module1が追加出来たら、その中に以下のコードをコピペで貼り付ける。
Option Explicit Sub Ribbon_Load(Ribbon As IRibbonUI) 'リボンがロードされたら実行されるCallback関数 On Error Resume Next End Sub Public Sub sub1(control As IRibbonControl) 'button1クリックで実行する関数 MsgBox "猫ニャー" End Sub
このコードに関しては特に難しい点は無い。
Ribbon_Load関数は文字通りリボンがロードされた時に実行される関数だ。関数名は自由に決めても良い。
On Error Resume Nextは今は無くても良いかも。もしRibbon_Load関数内で複雑な処理をする場合には、エラーをスキップする目的で使うと良い。
関数の引数の変数型がIRibbonUIとかIRibbonControlと言った初めて見る型だが、ワテも良く分かっていない。
XLAMファイルの保存
このコードを無事にModule1に貼り付けたら、Book1.xlsxを拡張子XLAMで保存する。
ファイル保存メニューで拡張子XLAMを選択すると、パスが勝手に以下のフォルダに変わる。
C:\Users\wate\AppData\Roaming\Microsoft\AddIns
このフォルダに保存すると、EXCELが起動するたびにそのXLAMアドインがロードされる。
今の場合は、実験目的なので、このフォルダには入れずに実験用の適当なフォルダに入れておく。
E:\テスト\2018-05-30-VBAでRibbonを使う
例えばこんなフォルダを作成しておこう。
そして、
ファイル種類をExcelアドイン(*.xlam)
で保存する(下図)。
この後の作業では、このXLAMアドインにリボンを追加して、リボンの中のボタンをクリックしたら関数sub1()を実行出来るようにするのだ。
Office Custom UI Editor
さて、先ほど作成した
猫ニャーBook1.xlam
の拡張子を
猫ニャーBook1.xlam.zip
に変更してみる。
そのzipファイルをWindowsのファイルエクスプローラーで見ると幾つかのフォルダやファイルが有る(下図)。
図 猫ニャーBook1.xlam.zipの中身
この例ではxlamファイルの中身を見ているが、xlsxやxlsmなどでも拡張子をzipに変えると中身が見られる。
つまり、従来のエクセルではファイルはバイナリーファイルで人が見ても分からない形式だった。それがEXCEL2007からはデータを保持する形式がzip形式に変わったので、このような小細工をすると誰でもファイルの中身を見られるようになった。
リボンはXMLファイルに記述されている
上図に於いて、
customUI\customUI14.xml
と言うXMLファイルがこれから作成するリボンの情報を保持しているファイルだ。
なので、皆さんの場合にはまだこのフォルダもファイルも無いはずだ。
この後でやるように、XMLファイルは人が見ても中身が理解出来るテキストファイルだ。
なので、このzipファイルを解凍して、何らかのテキストエディタでcustomUI14.xmlファイルを手作業で編集して、そしてフォルダを再びzipに圧縮する。
その後で拡張子を xlamに戻せば原理的には手作業で xlamファイル内のリボンを編集できる。
しかしながら、ワテが試した限りでは単にcustomUI14.xmlを編集するだけでは上手く行かない。つまり再圧縮したzipをxlamに戻しても、そのxlamファイルは正しいアドインとは認識されなかった。
たぶん、上記のzipファイルの中にある他のファイルと互いに関連しているので、このXMLファイルだけを編集してもダメなのだ。
で、その辺りを上手くやってくれるツールが有るのでそれを使ってこのXMLファイルを編集する。今の場合は新規にXMLファイルを追加する事になる。
Office Custom UI Editorを使う
このように、xlamアドインのリボンを編集する事が出来るツールはワテが調べた限りでは、二つある(有った)。
- Office Custom UI Editor
- Office Ribbon Editor
ワテが2013年頃にリボンに関して色々試していた当時は、この二つのツールが有ったのだが、今回確認したら、後者は無くなっているようだ。
なので、前者のOffice Custom UI Editorを使う事にする。
ちなみに、ワテの記憶が確かなら、この二つのツールはどちらも似た様な感じだった。
Office Custom UI Editorをダウンロード
以下のマイクロソフト社のサイトにもこのOffice Custom UI Editorに関する記述がある。
Office Custom UI Editorの開発者のブログサイトは以下の通り。
確か、作者の人はマイクロソフト社の社員かな?
ダウンロードするファイルは以下の通り。
OfficeCustomUIEditorSetup.zip
そのURLは以下の通り。
解凍するとインストーラー形式(msi)なので、ダブルクリックでインストールが開始する。
図 OfficeCustomUIEditorのアイコン
無事にインストールされると上図のアイコンがデスクトップに出来る。
なお、マイクロソフト社のサイトでも紹介されているツールなので、ウイルスが入っている心配は無いとは思うが、もし自分でソースコードからビルドしたい人は、ソースコードも入手可能だ。
ワテもここからダウンロードしてVisual Studio2017Communityでリビルドして実行した。
.NET Framework 3.5がデフォルトだった。
兎に角、インストーラー形式(msi)版でも、リビルド版でもワテが試した限りでは期待通り動く。
では、早速使ってみよう。
Office Custom UI Editorを使う
起動すると下図が出る。
図 Office Custom UI Editor起動直後の画面
上図において、ファイルメニューから先ほど作成した「猫ニャーBook1.xlam」を読み込むと下図になる。
図 Office Custom UI Editorに猫ニャーBook1.xlamを読み込んだ直後
上図の右側の領域に以下のXMLデータをコピペで貼り付ける。
<?xml version="1.0" encoding="UTF-8"?> <customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab idMso="TabAddIns"> <group id="group1" label="group1"> <box id="box1"> <button id="button1" label="button1" showImage="false" onAction="Module1.sub1"/> </box> </group> </tab> </tabs> </ribbon> </customUI>
このコードを簡単に説明するなら、以下の二行が今回の作業の要点になる。
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <button id="button1" label="button1" showImage="false" onAction="Module1.sub1"/>
onLoadで指定している関数 Ribbon_Loadがリボンロード時に実行される関数だ。なので、もし名前を変える場合は、このXMLだけでなく、先ほど作成したVBAのModule1の関数も同じ名前に変えておく必要がある。
次に、ボタンクリックで実行される関数はonActionで指定する。
"Module1.sub1"
このように、モジュール名と関数名をドットで連結しておく。
あとは、ボタンに表示するlabel文字列や、アイコンの絵柄を表示する・しないを設定するboolean型フラグなどがある。
アイコン絵柄に関しては、自前の画像ファイル(pngなど)を指定して表示する事も出来るし、あるいは、EXCELが持っている標準の絵柄アイコンを表示する事も可能だ。
各自試してみると良いだろう。
さて、XMLデータを貼り付けたら下図のようになれば成功だ。
図 XML形式のリボンデータを貼り付けた状態
ここで別名で保存したかったのだが、何故か出来なかったので上書き保存した。
なので、オリジナルのファイルは念のために事前に別名でコピーを残しておいた(下図)。
図 XMLを追加したxlamと追加する前のxlam
まあ、この辺りは各自好きなようにすると良いだろう。
リボンを追加したxlamを実行する
さて、いよいよ今作成したリボン付きのxlamファイルをエクセルに読み込んでみる。
猫ニャーBook1.xlam
をダブルクリックで開くと下図が出るはずだ。
図 猫ニャーBook1.xlamをエクセルに読み込む時の警告
ここで「マクロを有効にする」をクリックすると、下図のように無事にエクセルが起動して、アドインタブにgroup1が有れば成功だ。
図 リボンに自前のgroup1が追加出来た
上図に於いて、button1をクリックして下図が開けば成功だ。
図 無事にリボンのbutton1が実行出来た例
これで、自作のVBA関数をリボンのボタンから実行する事が出来るようになった。
複雑なリボンメニューを作成する方法
例えば下図のような複雑なリボンを作りたい場合はどうするか?
図 複雑なリボンデザインの例
このリボンに使ってる部品は以下の通り。
- button
- checkbox
- comboBox
- editbox
- menu
- dropdpwn
- splitButton
- toggleButton
ちなみに、splitButtonとは何かな?ワテは使った事が無い。
さて、以下のコードをOffice Custom UI Editorで貼り付ければ可能だ。
<?xml version="1.0" encoding="UTF-8"?> <customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab idMso="TabAddIns"> <group id="group1" label="group1"> <box id="box1"> <button id="button1" label="button1" showImage="false" onAction="Module1.Sub1"/> <button id="button2" label="button2" showImage="false" /> <checkBox id="checkBox1" label="checkBox1" /> </box> <buttonGroup id="buttonGroup1"> <button id="button3" label="button3" showImage="false" /> <button id="button4" label="button4" showImage="false" /> </buttonGroup> </group> <group id="group2" label="group2"> <editBox id="editBox1" label="editBox1" showImage="false" /> <comboBox id="comboBox1" onChange="comboBox1_TextChanged" label="comboBox1" showImage="false"> <item id="__id1" label="Item0" /> <item id="__id2" label="Item1" /> <item id="__id3" label="Item2" /> </comboBox> <menu id="menu1" label="menu1" showImage="false"> <button id="button5" label="button5" /> <button id="button6" label="button6" /> <checkBox id="checkBox3" label="checkBox3" /> </menu> </group> <group id="group3" label="group3"> <dropDown id="dropDown1" label="dropDown1" showImage="false"> <item id="__id4" label="Item0" /> <item id="__id5" label="Item1" /> <item id="__id6" label="Item2" /> </dropDown> <splitButton id="splitButton1"> <button id="splitButton1__btn" label="splitButton1" /> <menu id="splitButton1__mnu"> <button id="button7" label="button7" /> <button id="button8" label="button8" /> <checkBox id="checkBox2" label="checkBox2" /> </menu> </splitButton> <toggleButton id="toggleButton1" label="toggleButton1" showImage="false" /> </group> </tab> </tabs> </ribbon> </customUI>
このXMLコードをどうやって作成するかは後で説明するとして、兎に角貼り付ける。
下図は、上のコードを実際にOffice Custom UI Editorで貼り付けた例。
図 Office Custom UI Editorで複雑なXMLリボンデータを貼り付けた例
ちなみに、下図のように右クリックするとメニューが開く。
図 Office Custom UI Editorの右クリックメニュー
以下の二つが開く。
- Office 2010 Custom UI Part
- Office 2007 Custom UI Part
ワテの場合には、EXCEL2013を使っているのだが、2013と言う項目は無いので「Office 2010 Custom UI Part」でも良いみたいだ。
つまり今貼り付けたXMLデータは「Office 2010 Custom UI Part」と言う項目になるようだ。
チェックボックスのイベントハンドラ設定
ボタンの場合は、クリックイベントのハンドラ設定はonActionだった。
<button id="button1" label="button1" showImage="false" onAction="Module1.Sub1"/> <checkBox id="checkBox2" label="checkBox2" onAction="Module1.CB2_CheckChanged" getPressed="Module1. CB2_getPressed" />
一方、チェックボックスのチェック変更もonActionで設定出来る。
チェックボックスには、もう一つ getPressed と言うのがある。確か、チェック状態が変化した時に発生するイベントだったと思う。
Visual Studioを使ってリボンのXMLを生成する方法
さて、兎に角ここまでの手法を使えば、Office Custom UI Editorにリボン定義のXMLデータを貼り付ければxlamアドインにそのリボンを追加する事は出来るのは分った。
では、先ほど紹介したようなややこしいリボンをどうやって作成するか?
図 先ほど紹介したややこしいリボンの例
まあ、手作業でXMLデータを作成してもよいが、その場合には、リボン定義のXMLデータ仕様を良く理解していないと出来ない。
ワテの場合は、あまり理解出来ていない。知っているのは、上で紹介したonAction, getPressed程度だ。
なので手作業でゼロからリボンのXMLデータを作成するのは難しい。
そんな貴方の為に、とっても良い方法があるのだ。
Visual Studioを使うとどんな複雑なリボンでも、部品を配置して簡単に作成出来るのだ。WYSIWYGと言うやつかな。
早速やってみよう。
Visual StudioのOffice VSTOアドインプロジェクトを作成する
下図のように
Visual C#
Office/SharePoint
VSTOアドイン
EXCEL2013と2016 VSTOアドイン
を選ぶ。
図 EXCEL2013と2016 VSTOアドインを作成する
プロジェクトの名前は適当に
ExcelAddInCSharp2
とした。
下図のようにEXCEL VSTOアドインのデフォルトのテンプレートが読み込まれる。
図 EXCEL VSTOアドインのデフォルトのテンプレートが読み込まれた直後
今の場合は、上図に示されているC#のコードなどは利用しないので気にしなくても良い。
Visual Studioを単にリボンのエディタとして使うだけなので、C#を知らない人でも心配は無い。
リボンを追加する
プロジェクト名ExcelAddInCSharp2の上で右クリックすると下図のサブメニューを開く事が出来る。
図 新しい項目を開く
下図が開くので、「リボン(ビジュアルなデザイナー)」を選択する。
図 リボン(ビジュアルなデザイナー)追加画面
上図で「追加」ボタンをクリックすると下図のリボンデザイン画面が出る。
ファイル名はデフォルトの Ribbon1.cs で良い。
図 リボン(ビジュアルなデザイナー)の画面
下図の「表示」メニューの「ツールボックス」を開く。
図 ツールボックスを開く
下図のツールボックスが開くので、Officeリボンコントロールメニューを選ぶ。
図 Officeリボンコントロールメニュー
上図のOfficeリボンコントロールメニューの中にある部品(Button, CheckBox,その他)から好きなやつを選んでリボンの上のgroup1にドラッグドロップする(下図)。
図 リボンの上のgroup1に多数の部品をドラッグドロップした例
上の例では、group1に加えてgroup2も追加した。
その上に複数のボタン、ラベル、チェックボックスを追加した。
上図のように、自分の好きなリボンデザインが完了したら、次はそのXMLデータを生成する。
リボンのXMLデータ生成
下図のように、リボンの適当な余白の部分で右クリックメニューを表示する。
図 リボンの右クリックメニュー表示例
上図において、「リボンをXMLにエクスポート」を実行すると、XMLファイルが自動生成される。
下図では、まだツールボックスが表示されているので、ソリューションエクスプローラーをクリックする。
図 リボンXMLエクスポート直後の画面
下図のようにソリューションエクスプローラーの画面に戻る。
その中に、今生成された Ribbon1.xml があるのでダブルクリックで開くと下図が出る。
図 Ribbon1.xml の中身
上図のように、リボン定義のXMLデータが自動生成されていれば完了だ。
あとは、上で説明したように、このXMLデータをOffice Custom UI Editorに張り付ければ良い。
まとめ
当記事では、EXCEL VBAでリボンを使う手順を紹介した。
手順としては、以下の通り。
- EXCEL VBAのエディタで自前の関数を作成し標準モジュールに追加する
- xlamアドインファイルに保存する
- Office Custom UI Editorでxlamファイルを開く
- リボン定義のXMLデータを貼り付けて上書き保存
これで、xlamアドインにリボンを追加出来る。あるいは編集も出来る。
もし複雑なリボンデザインを行いたい場合には、Visual StudioでVSTOアドインプロジェクトを作成してビジュアルなリボンデザイナーを利用すれば可能だ。
この手法が正統的な手法かどうかは未確認だ。
でも、ワテが知る限り、この方法がVBAで作成したxlamアドインやxlsmマクロ有効ブックに最も手軽にリボンを追加出来る手法だと思う。
この方法で作成したリボン付きのxlamアドインは、当記事でやったように標準モジュールの関数をコールしても良いし、あるいはXLLアドインの関数をコールして呼び出す事も可能だ。
あるいはVSTOアドインの関数も呼び出せると思うがワテは試した事は無い。いや、試したかも知れないが忘れた。まあVSTOアドインはそれ自身でリボンを追加出来るのでわざわざxlamアドインのリボンから実行する必要は無いかな。
まあ、そのあたりはどうでもいいが。
本を読む
上の本は有名な講談社のブルーバックスシリーズだ。アマゾンの人気も高い。小型本なので通勤途中でVBAを勉強するには最適だ。
上の本は、Visual Studioの入門書だ。まずはデスクトップアプリをC#で作ってみると良いだろう。慣れれば1分もあれば画面上に自作のウインドウを表示出来る。
その後はVSTOアドインプロジェクトを使って、EXCEL、WORD、PowerPointなどのアドン作成に挑戦するのも良いだろう。
上の洋書はワテが知る限りXLLアドイン開発に関する唯一の専門書だ。
ワテもこの本でXLL作成方法を必死で勉強した。
XLL開発に挑戦しようと言う人は必携の一冊だ。
コメント
前略
3節・Office Custom UI Editorで、ZIP化したものを展開したらcustomUIというフォルダがある、という説明に受け取れるのですが理解合っていますでしょうか。
私の方でやったのですがcustomUIというフォルダは存在していません。
Office365(Excel2016)を使っていますが、何か変わったのでしょうか?
お手数ですがご教授頂けると幸いです。
神澤さん
こんにちは。
本日は、小生のサイトにお越しいただきましてありがとうございました。
さてお問い合わせの件ですが、ZIP化するのは手作業でやります。
例えば
アドインファイル.xlam
なら、その拡張子を手作業で .zipに変えます。
アドインファイル.xlam.zip
こんな感じです。
このZIPファイルの中身をWindowsのエクスプローラーで見ると幾つかのフォルダやファイルがありますよね。
あるいはZIPを解凍して展開して中身を調べてみるのも良いでしょう。
さて、3.1.節に記載していますが、
customUIと言うフォルダや、
その中のcustomUI14.xmlと言うファイルはこれから作成するものなので、
「皆さんの場合にはまだこのフォルダもファイルも無いはずだ」
と言う事です。
3.2.節で、Office Custom UI Editorを使ってcustomUI14.xmlを作ってその中にリボン用のデータを書き込むのです。
もし不明な点がありましたら、コメント下さい。
ビジュアルスタジオを使って、XML編集せずにリボンをカスタマイズする方法があるとは
驚きました。大変参考になります。ありがとうございます。
shibahead様
本日は小生のサイトにお越し頂きましてありがとうございました。
Visual Studioを使ってリボンをデザインしてXMLファイルをエクスポートする方法ですが、なかなか便利でしょ!
我ながら良い方法だと思っています(自画自賛)。
この所、VBA関連のプログラミングをする機会が無いのですが、
先ほど久しぶりにEXCELの話題を調べてみたら
Excel JavaScript API
なんてのが登場したんですね。知らなかったです。
一時はExcelにPythonが搭載されるなんて噂がありましたがJavaScriptになったんですかね?
このAPIを使うとリボンをカスタマイズする事は出来るんですかね?
いろいろ興味津々です。
では、また何か良い情報でもありましたらお教えください。