Excelのマクロを作成して保存する際、マクロを作成したブックとともに保存する「マクロ有効ブック」で保存することが多いのではないだろうか。ただ、Excelでは、他にも、「個人用マクロブック」で保存したり、「アドイン」にしたりすることもできる。それぞれ一長一短があり、それぞれのマクロの保存方法に適した用途がある。そこで、本Tech TIPSでは、Excelのマクロに関して保存方法による違いをまとめてみた。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Office 2013/2016/2019/365
「Microsoft Excel(エクセル)」でマクロを作成したら、次回も使えるように保存しておきたいだろう。その際、マクロを作成したブックとともに保存する「マクロ有効ブック」で保存することが多いのではないだろうか。でもExcelでは、「マクロ有効ブック」の他に、「個人用マクロブック」「アドイン」にもマクロを保存できる。これらには、それぞれ特徴があり、それを知って使い分けることでさらに便利になる。なお、Excelのマクロに関しては、Tech TIPS「Excel自動化への第一歩 マクロ(VBA)を使えるようにする」「プログラミング不要でRPA、「マクロの記録」機能でExcelを自動化する」で概要を解説している。
結論から言うと、この3つは、下表のように使い分けするとよい。
タイプ | マクロ有効ブック | 個人用マクロブック | アドイン |
---|---|---|---|
メリット | マクロとシート(データ)を一緒に管理 | 簡単に作成でき、いつでも利用可能 | セキュリティが高い |
デメリット | メール添付などでセキュリティに引っ掛かる可能性あり | オフにするのが面倒。Excelの複数インスタンスでの共有が困難 | 作成作業が複雑 |
代表的な使い方 | 特定のデータ用のマクロをデータ(シート)とともに管理する | マクロ記録の保存先 | 恒久的に使うマクロの保存先。マクロを配布する場合 |
Excelのマクロ保存方法の違い |
また、それぞれの特徴を下表にまとめておく。
タイプ | マクロ有効ブック | 個人用マクロブック | アドイン |
---|---|---|---|
拡張子/ファイル名 | 〜.xlsm | PERSONAL.XLSB | 〜.xlsa |
実体 | ブックファイル | ブックファイル | アドイン形式ファイル |
保存フォルダ | 任意のフォルダが利用可能 | %APPDATA%\Microsoft\Excel\XLSTART\ | %APPDATA%\Microsoft\AddIns\ |
自動読み込み | × | ○ | ○ |
シートの表示 | ○ | △(設定で非表示を解除) | × |
自動読み込み解除 | 不要 | PERSONAL.XLSBを削除 | アドイン設定 |
マクロ有効範囲 | 読み込み中のみ | 常時 | 常時 |
マクロの署名 | 設定で必須化可 | 不要 | 設定で必須化可 |
マクロ記録の保存先 | ○ | ○ | × |
別プロセスのExcelから編集 | × | × | ○ |
マクロのリボン登録 | × | ○ | ○ |
セキュリティ | 低〜中(設定依存) | 低 | 中〜高(要設定) |
作成手順 | 容易 | 容易 | 面倒 |
Excelのマクロ保存方法の特徴 |
これだけでは判断が難しいと思うので、それぞれについてもう少し解説しておこう。
通常のブックファイル(xlsxファイル)は、セキュリティ対策のためにマクロを記録できない。一方で、「マクロ有効ブック」は、拡張子が「.xlsm」でマクロが記録できる点で異なるものの、通常のブックファイルと機能的には同一である。
マクロを含むブックは、保存時にマクロ有効ブックとして保存する必要があり、ユーザーに「マクロが入っている」ことを明確に区別させるようになっている。他の2つの形式では、シートを表示して編集することが簡単にはできないようになっているのに対して、マクロ有効ブックは、あくまでもブックファイルであり普通にシートを編集できる。
「特定のテキストファイルからマクロを使ってデータを抽出してセルに入れる」といった場合なら、マクロ有効ブックとして保存すれば、対象のデータとマクロを1つのファイルで管理できる。こうしたマクロは、再利用するかもしれないが、特定のデータ形式に依存するため、ブックの中にシートと共にあると管理が楽だ。
新規作成した保存前のブックは、通常のブックファイルでもマクロ有効ブックでもない状態なので、マクロの記録の保存先として利用できる。このため、ブックファイルを作成し、マクロ記録でマクロを登録して、そのままブックファイルを保存しないで破棄してしまうことも可能だ。こうしたやり方でマクロを「使い捨て」することもできる。新規作成したブックが、通常のブックファイルとマクロ有効ブックファイルのどちらになるかは、保存時に決まるということを理解しておくといい。
マクロ有効ブック内に記録されたマクロは、ブックがExcelで読み込まれているときにしか有効にならないため、リボンからボタンで起動するマクロなどの保存先には向いていない。というのはリボンの設定は、ユーザーの設定なので、開いているブックに関係なく常に同じリボン設定となるからだ。リボンのボタンからマクロを呼び出すような場合には、後述する「個人用マクロブック」か「アドイン」を使うようにする。
環境に依存するがマクロ有効ブックは、電子メールなどのセキュリティシステムにより警告が表示されたり、送信などが阻止されたりする場合がある点には注意が必要だ。原則として自分だけで利用するのにとどめておいた方がいいだろう。
「個人用マクロブック」は、保存先がユーザーフォルダ以下に固定されていて、ファイル名も「PERSONAL.XLSB」で変更ができない。一回、個人用マクロブックが作成されると、以後、Excelを起動するたび、この個人用マクロブックファイルが読み込まれる。
これも1種のブックファイルなのだが、デフォルトでブック自体が非表示に設定されており、このブックのウィンドウは開くことができない。特殊なマクロ有効ブックだと考えるといいだろう。常に自動的に読み込まれるため、ここに記録されたマクロは、いつでも利用できる。そのため、リボンに登録して使うマクロなどを置いておくことができる。その方法についてはTech TIPS「【Excel】『あの機能はどのタブだっけ?』を自分専用リボンで解決」を参考にされたい。
個人用マクロブックに最も適した使い方は、「マクロ記録」で作成するマクロの保存先だ。マクロ記録では、登録先に必ず「個人用マクロブック」が選択できるようになっている。もし、まだ作成していない場合でも、マクロ記録から登録先として「個人用マクロブック」を選べば、ファイルが作成される。
個人用マクロブックはマクロの記録用として簡単に利用できる半面、幾つか欠点がある。例えば、Excelを別プロセスで起動している場合、個人用マクロブックは全てのExcelプロセスで開かれるため、共有状態となり、編集が簡単にできない。
また、個人用マクロブックの自動読み込みを停止させたい場合、ユーザーフォルダ以下にある「PERSONAL.XLSB」ファイルの名前を変更したり削除したりするか、このフォルダから移動する必要がある。作成や読み込みは楽だが、解除が少し面倒だ。
Copyright© Digital Advantage Corp. All Rights Reserved.