[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

違いが分かるExcel使いになるための「マクロの保存方法3種」Tech TIPS

Excelのマクロを作成して保存する際、マクロを作成したブックとともに保存する「マクロ有効ブック」で保存することが多いのではないだろうか。ただ、Excelでは、他にも、「個人用マクロブック」で保存したり、「アドイン」にしたりすることもできる。それぞれ一長一短があり、それぞれのマクロの保存方法に適した用途がある。そこで、本Tech TIPSでは、Excelのマクロに関して保存方法による違いをまとめてみた。

» 2020年12月11日 05時00分 公開
[塩田紳二]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Office 2013/2016/2019/365


Excelで作成したマクロの保存方法 Excelで作成したマクロの保存方法
Excelのマクロを保存するファイルには、「マクロ有効ブック」「個人用マクロブック」「アドイン」の3つがある。それぞれの特性を理解して、使い分けすることでマクロの管理が楽になる。

 「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) 「マクロ有効ブック」で保存する(1)
「マクロ有効ブック」は、ブックの保存時に指定することで作成できる。[ファイル]タブを開き、[名前を付けて保存]を選択する。そのままマクロが含まれているブックを保存しようとすると、警告ダイアログが表示される。
「マクロ有効ブック」で保存する(2) 「マクロ有効ブック」で保存する(2)
[名前を付けて保存]ダイアログの「ファイルの種類」で[Excelマクロ有効ブック]を選択する。

 「特定のテキストファイルからマクロを使ってデータを抽出してセルに入れる」といった場合なら、マクロ有効ブックとして保存すれば、対象のデータとマクロを1つのファイルで管理できる。こうしたマクロは、再利用するかもしれないが、特定のデータ形式に依存するため、ブックの中にシートと共にあると管理が楽だ。

 新規作成した保存前のブックは、通常のブックファイルでもマクロ有効ブックでもない状態なので、マクロの記録の保存先として利用できる。このため、ブックファイルを作成し、マクロ記録でマクロを登録して、そのままブックファイルを保存しないで破棄してしまうことも可能だ。こうしたやり方でマクロを「使い捨て」することもできる。新規作成したブックが、通常のブックファイルとマクロ有効ブックファイルのどちらになるかは、保存時に決まるということを理解しておくといい。

 マクロ有効ブック内に記録されたマクロは、ブックがExcelで読み込まれているときにしか有効にならないため、リボンからボタンで起動するマクロなどの保存先には向いていない。というのはリボンの設定は、ユーザーの設定なので、開いているブックに関係なく常に同じリボン設定となるからだ。リボンのボタンからマクロを呼び出すような場合には、後述する「個人用マクロブック」か「アドイン」を使うようにする。

 環境に依存するがマクロ有効ブックは、電子メールなどのセキュリティシステムにより警告が表示されたり、送信などが阻止されたりする場合がある点には注意が必要だ。原則として自分だけで利用するのにとどめておいた方がいいだろう。

個人用マクロブックとは

 「個人用マクロブック」は、保存先がユーザーフォルダ以下に固定されていて、ファイル名も「PERSONAL.XLSB」で変更ができない。一回、個人用マクロブックが作成されると、以後、Excelを起動するたび、この個人用マクロブックファイルが読み込まれる。

 これも1種のブックファイルなのだが、デフォルトでブック自体が非表示に設定されており、このブックのウィンドウは開くことができない。特殊なマクロ有効ブックだと考えるといいだろう。常に自動的に読み込まれるため、ここに記録されたマクロは、いつでも利用できる。そのため、リボンに登録して使うマクロなどを置いておくことができる。その方法についてはTech TIPS「【Excel】『あの機能はどのタブだっけ?』を自分専用リボンで解決」を参考にされたい。

 個人用マクロブックに最も適した使い方は、「マクロ記録」で作成するマクロの保存先だ。マクロ記録では、登録先に必ず「個人用マクロブック」が選択できるようになっている。もし、まだ作成していない場合でも、マクロ記録から登録先として「個人用マクロブック」を選べば、ファイルが作成される。

「個人用マクロブック」で保存する 「個人用マクロブック」で保存する
「個人用マクロブック」は、[開発]タブの[コード]グループにある[マクロの記録]で、「マクロの保存先」を[個人用マクロブック]とすることで、自動的に作成される。以後デフォルトのマクロの保存先として使われる。

 個人用マクロブックはマクロの記録用として簡単に利用できる半面、幾つか欠点がある。例えば、Excelを別プロセスで起動している場合、個人用マクロブックは全てのExcelプロセスで開かれるため、共有状態となり、編集が簡単にできない。

 また、個人用マクロブックの自動読み込みを停止させたい場合、ユーザーフォルダ以下にある「PERSONAL.XLSB」ファイルの名前を変更したり削除したりするか、このフォルダから移動する必要がある。作成や読み込みは楽だが、解除が少し面倒だ。

 もう1つ、個人用マクロブックは、電子署名がなくてもマクロを実行できてしまうという問題もある。他のユーザーからはアクセスできない自分のユーザーフォルダ以下にあるため、基本的には「安全」とされており、電子署名がなくてもマクロが実行できてしまう。パスワードの漏えいなどによってユーザーフォルダへのアクセス権を取られてしまうと個人用マクロブックを勝手に配置し、不正なマクロを仕組むことは難しいことではない。このため、個人用マクロブックを使うなら、サインイン時やロック解除時の認証を必須として、パスワード/パスコード入力を省略する設定などは避けた方がよい。

 前述のように個人用マクロブックは、デフォルトで表示されない。そのため、内容を確認したり編集したりするには、[表示]タブの[ウィンドウ]グループにある[再表示]アイコンをクリックして、いったん表示させる必要がある。

「個人用マクロブック」を表示する 「個人用マクロブック」を表示する
「個人用マクロブック」は、ブックファイルの一種だがデフォルトでウィンドウが「非表示」になっている。Excelの機能の中には、非表示のブックに対しては処理が行えない場合があり、このようなときには、表示]タブの[ウィンドウ]グループにある[再表示]アイコンをクリックして、「ウィンドウの再表示」ダイアログを表示させて、「PERSONAL」を選択して[OK]ボタンを押す。

 ただし、1回設定すると、以後ずっと個人用マクロブックのブックウィンドウが開くようになってしまうため、設定などが終了したたら、また非表示設定にしておく必要がある。このブックウィンドウが表示されたままだと、間違って値を入力してしまうなど、混乱を招くことがあるため、設定などが終了したらすぐに非表示に戻すべきだ。

「個人用マクロブック」を非表示にする 「個人用マクロブック」を非表示にする
1回ウィンドウを表示させた「個人用マクロブック(PERSONAL.XLSB)」は、作業が済んだら、すぐに非表示状態に戻した方が混乱は少ない。個人用マクロブックのウィンドウを選択して、[表示]タブの[ウィンドウ]グループの[表示しない]アイコンをクリックする。

アドインとは

 アドインは、個人用マクロブックに似ているものの、作成手順が少し煩雑になる。マクロへの電子署名を付けたり、登録時に電子署名を信頼したりするなどの操作が必要だ。ただし、その分、セキュリティは高く、配布に向いている。そもそもアドインは、マクロによる機能やユーザー定義関数などを簡単にExcelに追加するための仕組みである。アドインの作り方などについては、Tech TIPS「【Excel】作成したマクロをアドインにしてクリック一発で実行可能にする」を参考にしてほしい。

 自分で作成したアドインは、[%APPDATA%\Microsoft\AddIns\]フォルダに保存することでExcelに登録が行われる。その後、アドインを有効化することで自動読み込みが行われるようになる。ブック/シートとして利用できない半面、セキュリティが高く、どちらかというと、作成したマクロを配布するような場合に向いている。Excelの設定でアドインに対して電子署名を必須とできるため、配布を受ける側も出どころのはっきりしたマクロだけを使えるといった安心感がある。

「アドイン」を毎回読み込むように設定する(1) 「アドイン」を毎回読み込むように設定する(1)
「アドイン」は、[%APPDATA%\Microsoft\AddIns\]フォルダに「.xlsa」ファイルを保存することでExcelに認識される。これを毎回読み込むようにするには、[ファイル]タブ の[オプション]を選択する。
「アドイン」を毎回読み込むように設定する(2) 「アドイン」を毎回読み込むように設定する(2)
[Excelのオプション]ダイアログが開くので、左ペインで[アドイン]を選択し、右ペインで[設定]ボタンを押す。
「アドイン」を毎回読み込むように設定する(3) 「アドイン」を毎回読み込むように設定する(3)
登録されているアドインの一覧が表示されるので、必要なアドインのチェックボックスを「オン」にする。

 アドインの場合、特定のフォルダにアドインファイル(「.xlsa」ファイル)を置くことで登録が行われる。ただし、その有効/無効は、別途ユーザーが設定する必要がある。逆にいうと、有効/無効を設定できるため、自動読み込みを止めて、マクロを一時的に無効化するのであれば、アドイン設定を行うだけでよく、アドインファイル自体には手を付ける必要がない。

 また、アドインは、別プロセスで起動されたExcelで編集を行っても、マクロの編集ができないなどのファイル共有によるトラブルの心配がなく、マクロの修正なども可能だ。このあたりの柔軟さを考えると、常用するマクロは、アドインファイルに集めておくとよい。マクロ記録で多数のマクロが作られる可能性がある個人用マクロブック内のマクロとはきちんと区別がつけられる。

 逆に、マクロ記録では、アドインにマクロを直接記録することはできない。このため、自作のアドインに登録されているマクロは、必ずユーザーが自分で登録したマクロであり、勝手にマクロが追加されることはない。

 マクロの記録で個人用マクロブックにマクロを登録していき、動作が正しいことを確認した利用頻度の高いマクロだけをアドイン側に移して保管しておくことで管理が簡単になる。多数のマクロを名前だけで、1つしかない個人用マクロブックに全て保存して管理するのはちょっと面倒だ。


 「マクロ有効ブック」「個人用マクロブック」「アドイン」には、それぞれ特徴があり、どれか1つで全ての場合に対応することは難しい。特性を理解して、適切な形式で管理することで、マクロの管理で混乱せずに済む。マクロに適切な名前を付けることも基本ではあるが、マクロを保存できる3つのファイルを使い分けることも重要である。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。