2014/02/22

Excel などにリボンメニューを追加して VBA/マクロアプリケーションを作る方法


はじめに

Office 2007 以降は UI がリボンメインターフェースに変更されましたが、リボンメニューを使用したアプリケーションの開発は、Visual Studio tools for Office  などの、.NET 用の開発ツールでないと開発できないと思っている方も多いと思います。

ですが、Office Ribbon Editor というリボンエディタを使用することで、Excel などの Office で、VBA/マクロを利用したアプリケーションを簡単に作成することができます。

Office Ribbon Editor は、.NET Framework 3.5 で動作するフリーウェアで、商用利用も可能なライセンスなので、安心して利用することができます。

リボンエディタとしては、Custom UI Editor の方が有名なのですが、このツールは英語しか扱えず、日本語を使用すると文字化けしてしまうので、Office Ribbon Editor の方がおすすめです。

なお、この記事は Office 2010 以降を想定して記述しています。

Office Ribbon Editor のダウンロードとインストール

Office Ribbon Editor のサイトにアクセスし、[Download Mirrors] メニューをクリックし、[Download] ボタンをクリックしダウンロードを開始します。

pic01

ダウンロードした、「OfficeRibbonEditor442.exe」をダブルクリックして、インストーラーを起動します。すると、インストール画面が表示されるので、[Next] をクリックします。

pic02

ライセンスに同意して、[Next] をクリックします。

pic03

[Next] をクリックします。

pic04

[Create a desktop icon] にチェックを入れて、[Next] をクリックします。

pic05

[Install] をクリックして、インストールを開始します。

pic06

[Install] をクリックして、インストール完了です。

pic07

Office Ribbon Editor の使い方

Office Ribbon Editor の使い方をご紹介します。今回は、Excel 2010 のリボンメニューを作成し、VBA コードを実行できるようにします。

Office Ribbon Editor を起動して、[File] – [New] – [Excel 2010 Spreadsheet] から新規 Excel ファイルを作成します。

pic08

ファイルの保存場所と形式を聞いてくるので、ファイル名は「Ribbon UI」、ファイルの形式は、「Excel Macro-Enabled Workbook (*.xlsm)」を指定します。ここで、「Excel Workbook (*.xlsx)」を指定すると、リボンメニューは作成できますが、VBA コードを記述できなくなるので注意してください。

pic09

次に、画面右側の [RibbonUI.xlsm] を右クリックし、[Add Custom UI] – [Office 2010] を選択してリボンメニューを追加します。

pic10

「RibbonX14」というファイルが追加されるので、これをダブルクリックして編集します。

pic11

この状態で、左側の [Sample] – [Office 2010] – [Custom Ribbon] をダブルクリックし、リボンメニューのサンプルコードを挿入します。

pic12

挿入されたサンプルコード (XML) は以下のようになります。

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
  <tabs>
   <tab id="customTab" label="Custom Tab">
    <group id="customGroup" label="Custom Group">
     <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="Callback" />
    </group>
   </tab>
  </tabs>
</ribbon>
</customUI>

リボンメニューにボタンを追加して、onAction イベントで、「Callback」関数を呼び出していることが分かります。

次に VBA のコードを記述するのですが、Custum UI Editor の VBA コードエディターは正直使えないので、先ほど保存した Excel ファイルの「RibbonUI.xlsm」を起動します。

[開発] タブが表示されていない場合は、Excel のオプションから [開発] タブを表示してください。

[開発] タブを表示し、[Visual Basic] アイコンをクリックし、VBA コードの編集を行います。

pic13

VBA の IDE が起動されたら、「RibbonUI.xlsm」 の [VBAProject] を右クリックし、[挿入] – [標準モジュール] を選択し、標準モジュールを追加します。

pic14

標準モジュールが表示されたら、以下のコードを貼り付けて保存します。

Sub Callback(control As IRibbonControl)
  MsgBox "Hello!"
End Sub

ここで、リボンメニューに追加された [Custom Tab] を表示し、アイコンボタンをクリックすると、VBA コードが実行されます。

pic15

あとは、通常の VBA コードを記述していけば、リボンメニューの VBA/マクロアプリケーションを作成することができます。

Office アイコンセット

先ほどの XML ファイルの中で、「imageMso="HappyFace" size="large"」と指定したことで、アイコンボタンが表示されていました。

実際のアプリケーションを作成する場合は、もっと他のアイコンを使用したいですよね。

自分でイメージを作成してそれを取り込む方法もあるのですが、Office で既定で持っている豊富なアイコンセットを使用する方法があります。

上記サイトから、Office 2010 で使用できるアイコンセットを調べられるギャラリーをダウンロードすることができます。ただ、非常に使いづらいです。Office 2007 の時は使いやすかったのですけどね。

この問題を解消する「Office 2010 Icon Viewer」というフリーウェアが、以下のサイトで公開されています。ありがたいですね。

pic16

リボンメニュー情報源

リボンメニューの Microsoft 公式情報です。

日本語の貴重な情報源です。リボン関連のリンクの充実ぶりがすごいですね。


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

RibbonUI.xlsmを保存(?)した後の操作が不明です。

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    現在、Enty で支援を受け付けています。もしよければご支援ください。



    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから