ExcelVBAで作ったマクロをアドイン化する
VBAでマクロを作成して作業を自動化する方は多いと思いますが、マクロだけ分離しても大丈夫ということは結構知られていないのではと思います。
1. xlsm形式で保存する
普通にマクロ付ファイルとして保存すると、xlsm形式になるのはご存知ですがこちらは開くたびに警告が出るのは困りものです。
報告書を作成するのにVBAを使っていたりする場合、マクロの部分だけxlsmとして作って、報告書のファイルとか共有する部分はxlsxで作成する。で、二つのファイルを一緒に開いて、xlsxのドキュメント上の「開発」タブから「マクロ」を呼び出してやる。もしくはAlt+F11で"Microsoft Visual Basic for Applications"を呼び出すととxlsmの関数が呼び出せます。
xlsm上でActiveSheetとかActiveWorkBookとかは最後にactiveだったxlsxになります。
2. xlam形式で保存する
あまり知られていないのがExcelアドイン形式で保存すること。
こちらはデフォルトのExcelアドインフォルダに保存されようとします。この形式のファイルは「オプション」>「アドイン」の管理(A):Excelアドイン の「設定(G)...」の「アドイン」ダイアログの「参照(B)...」から読み込むことで、Excelのアドインとして登録することが可能です。
上記1.ではxlsmを一緒に立ち上げなければいけないという難点がありましたが、こちらはExcelが起動するときに常に使える状態になっています。
3. マクロの呼び出し用のリボンを作る
上記で登録したマクロはリボンに簡単に登録することができます。
「オプション」>「リボンのユーザー設定」で「コマンドの選択」から「マクロ」を選択すると、呼び出し可能なマクロの一覧が出てきます。
ただし、このマクロは「ユーザー設定」のグループにしか登録できないので「新しいグループ」によりマクロ用のグループを作成し、そこに対して「追加」することになります。
新しいグループは既存の「ホーム」タブとかにも追加可能です。
ただし、この方法だと、xlam形式のアドインを配った端末・ユーザーに対してそれぞれリボンを追加する必要があります。
そこで利用可能なのは Custom UI Editor tool http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2006/05/26/customuieditor.aspx になります