LoginSignup
10
14

More than 5 years have passed since last update.

VBAで作ったマクロをxlsx形式のファイルで利用する

Last updated at Posted at 2014-05-13

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 になります

10
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
14