マクロを使って処理を自動化する

クロという言葉を耳にしたことがあると思いますが、マクロというと、コンピュータウイルスの危険があるような、なんとなく怖いものというイメージがあるかもしれません。

一般的によく目にするのは、下図のようにファイルを立ち上げたときに表示される警告ではないでしょうか。

「セキュリティの警告」メッセージのイメージ

セキュリティの警告という少々強い表現になっているため、マクロというのがコンピュータウイルスのように恐ろしいものであるような印象を受けがちです。

Wordの応用操作編 マクロを使って処理を自動化する でも解説していますが、マクロとは本来、様々な操作をまとめて一連の処理として呼び出せるように設定した実行プログラムのことです。

つまり、WordやExcelなどで実行する一連の処理や操作をひとつにまとめたもの(自動化したもの)で、ワンクリックで処理させることができるようになります。

自分だけのオリジナルの処理手順を自動化するプログラムがマクロ

と言うこともできます。

マクロを理解するためにはプログラミングの知識も必要になってくるのですが、本項ではそこまで高度な解説は行いません。マクロの概要を知り、簡単なマクロの記録、そして実行について学習します。

というのも、インターネット上には便利なマクロが公開されています。それ拝借すればよいので、必ずしもプログラミングの知識は必要としません。マクロの便利さを知り、興味がでてきたら勉強してみてください。

では、具体的な例に入る前に、まず冒頭で述べた「恐ろしい」イメージがどこから来ているのかおわかりでしょうか?

マクロがプログラムであるということがそのまま答えとなるのですが、すなわち、コンピュータウイルスなどの悪意あるプログラムを埋め込むことも可能になるからです。(ウィルスについて詳しくは、セキュリティ対策 を参照してください)

そのため、ExcelやWordファイルを開くと、通常マクロは無効化された状態で開きます。これは、プログラムを起動と同時に無条件で実行させないためです。

その警告が冒頭の図です。警告にあるようにマクロが信頼できる場合のみ、マクロを有効にして活用します。詳しくは後述しますので、マクロが恐ろしいプログラムなのではなく、マクロが悪用される場合があるということを知っておいてください。

では、マクロの具体的な例をみていきましょう。

下図のようにすべての列の幅を「2.00」ピクセル、行の高さを「24.00」ピクセルに設定して利用する場合が多いとします。

すべての列の幅と行の高さを一律に設定したイメージ

このような場合、毎回すべての幅と高さを設定する手間を省くために、一連の手順をマクロとして登録することができます。後述しますが、マクロの適用はボタンクリックひとつです。

実際に、この設定をマクロに登録してみましょう。

マクロの登録方法には2通りの方法があります。まずひとつは、VBA(ブイビーエー)と呼ばれるプログラミング言語を使ってプログラミングする方法です。

VBAとは、Microsoft Visual Basic for Applicationsの略で、Office製品でマクロを開発するためのプログラミング言語です。したがって、この方法を習得するには高度な知識が必要です。

そしてもうひとつは、Excelにあるマクロ記録機能を使用してマクロを記録する方法です。

今回は、この方法を使ってマクロを登録してみます。

まず、マクロ記録機能を使うには、「開発」タブを表示させる必要があります。チェックボックスの作成 で学習した「開発」タブを表示させてみましょう。

その「開発」タブに「マクロの記録」ボタンがあります。これをクリックします。

「開発」タブの「マクロの記録」ボタンのイメージ

すると、「マクロの記録」画面が表示されます。

「マクロの記録」画面のイメージ

「マクロ名」には「Macro1」という文字が入っていますが、任意の名称に変更することができます。ここでは「マス目設定」と名称をつけました。(「Macro1」の「1」はマクロの登録数に応じて増えていきます)

「マクロの記録」画面のイメージ

その下の「ショートカットキー」に登録したマクロの実行キーを設定することができます。「Ctrlキー」との組み合せで設定することができ、例えば「Ctrl+a」とすると、当該キーの押下でマクロを実行するショートカットキーにすることができます。

後述しますが、マクロの実行は同タブの「マクロ」ボタンからも可能です。ショートカットキーは任意で設定しましょう。

次の「マクロの保存先」には、デフォルト(初期設定)で「作業中のブック」が指定されていますが、リストメニューを展開すると下図のように他の保存先を選択することができます。

「マクロの記録」画面のイメージ

それぞれの意味は読んで字のごとくですが、重要なのでよく理解しておきましょう。

作業中のブック

開いているブックのみにマクロが登録されるという意味になります。他のブックにマクロは登録されないため、新規や既存の他のブックではマクロを実行することができなくなります。

ただし、マクロを登録しているブックを開いている状態では、他のブックでもそのマクロを利用することができます。このことは後述しますが、重要な意味を持ちますので覚えておいてください。

新しいブック

開いているブックではなく、新規ブックを立ち上げてマクロを登録するという意味になります。現在開いているブックにはマクロは登録されなくなります。

ただし、同様にマクロを登録しているブックを開いている状態では、他のブックでも利用することができます。

個人用マクロブック

使用しているパソコンのフォルダにマクロを登録するという意味になります。

ブック単位ではなく、フォルダ(C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART)にマクロを登録します。

そのため、どのブックからでもマクロを利用することができます。他のブックでも利用したいマクロを作成する場合は、この「個人用マクロブック」を選択します。

ただし、デメリットとしては、使用中のパソコンのフォルダに保存するため、他のPCではマクロを利用することができなくなります。

一方、ブックに保存しておくと、そのブックは他のPCでもマクロを実行することができます。

これらの特性を理解し、作成するマクロの利用頻度などによって保存先を選択するようにしましょう。

では、まず「作業中のブック」でマクロを登録してみます。

「マクロの記録」画面のイメージ

上図のように「マクロの保存先」は「作業中のブック」を選択し、最後の「説明」欄には任意でマクロの説明文を入力します。

このまま「OK」ボタンをクリックするとマクロの記録が始まります。

マクロの記録とはどういうことかというと、マクロの作成はとても簡単で、プログラミング言語や複雑な操作をして作成するわけではありません。

操作が自動的に記録されて、それがそのままマクロとして登録される

からです。

列の幅を「2.00」ピクセル、行の高さを「24.00」ピクセルに合わせる操作をExcelが記録して、その操作そのものをマクロとして登録してくれるのです。(マウスの軌跡を記録するわけではありません。あくまでイメージであり、設定した幅と高さの値が登録されます)

マクロの記録が開始されると、同「開発タブ」の「マクロの記録」ボタンが「記録終了」ボタンに変化します。

「開発」タブの「記録終了」ボタンのイメージ

つまり、この「記録終了」ボタンをクリックすると記録が終了になるということで、現時点で記録が開始されている=記録中であるという意味になります。

この状態のまま、すべての列の幅を「2.00」ピクセル、行の高さを「24.00」ピクセルに設定します。

すべての列の幅と行の高さを一律に設定したイメージ

そして「記録終了」ボタンをクリックします。するとボタンが「マクロの記録」に戻り、マクロの記録が終了します。

「開発」タブの「マクロの記録」ボタンのイメージ

これで作業は終了です。これだけで一連の操作がマクロに登録されました。

記録されたマクロを確認するには、隣の「マクロ」ボタンをクリックします。

「開発」タブの「マクロの記録」ボタンのイメージ

すると、「マクロ」画面が表示されます。記録した「マス目設定」が登録されていることが確認できます。

「マクロ」画面のイメージ

この画面の簡単に説明をすると、「実行」ボタンは文字どおりマクロを実行するボタンです。

次の「ステップイン」は、マクロを一気に実行しないで、一行ずつ実行しながら動作を確認していく場合に使います。つまり、複雑なマクロを実行する場合に使うもので、本項での詳しい解説は割愛します。

その下の「編集」ボタンは、VBAでコンピュータ言語を直接編集するためのボタンです。同ボタンをクリックするとVBAの編集画面が立ち上がります。(「開発」タブの「Visual Basic」ボタンでも同画面が開きます)

VBA編集画面のイメージ

記録されたマクロはこのようにプログラミング言語となって記述されているのです。直接コードを編集したい場合には「編集」ボタンより修正を行います。

そして、その下の「作成」ボタンは新たなマクロの作成、「削除」ボタンは登録しているマクロを削除する場合に使います。「オプション」ボタンは、ショートカットキーや説明文の変更や修正をする場合に使うボタンになります。

では、登録したマクロを実行してみましょう。

マクロを実行するには、上の画面より「実行」ボタンをクリックするか、登録したショートカットキー(この場合は「Ctrl+a」キー)を押下することで実行することができます。

また、クイックアクセスツールバーにマクロボタンを追加して実行することもできます。下図のように、クイックアクセスツールバーのリストメニューから「その他のコマンド」を選択します。

クイックアクセスツールバーのイメージ

「Excelのオプション」画面が開くので、「コマンドの選択」で「マクロ」を選択すると、登録したマクロが表示されます。ここからクイックアクセスツールバーにマクロを登録することができます。

「Excelのオプション」画面のイメージ

ただし、後述しますが「作業中のブック」で登録したマクロを追加した場合は、他のブックでマクロが実行できないので注意してください。クイックアクセスツールバーにマクロを追加する場合は「個人用マクロブック」で登録したマクロを追加するようにしましょう。

このようにマクロは簡単に作成できて簡単に実行できるので、適当にマクロを作成してみて、作成したマクロが正常に動作することを確認してみてください。

では次に、登録したマクロを含めてブックを「保存」します。

ブックにマクロ登録した状態で上書き保存または名前を付けて保存しようとすると、下図のメッセージが表示されます。

マクロなしのブックに保存できないメッセージのイメージ

これは、通常の保存形式ではマクロを含んで保存できないという意味のメッセージになります。つまり、マクロを含んで保存できる保存形式で保存しなおす必要があるのです。

Excelの通常のファイル形式「.xlsx」はマクロを無効にしたファイル形式であり、この形式では保存することができません。マクロを有効にしたファイル形式「.xlsm」で保存する必要があります。

「名前を付けて保存」画面のイメージ

上図のとおり、Excelの「名前を付けて保存」画面でファイル形式を「.xlsm」に変更して保存することで、マクロを含めて保存することができます。(ファイル形式については、主な拡張子 を参照してください)

また、この形式のファイルを開くと、冒頭のセキュリティの警告メッセージが表示されます。「コンテンツの有効化」ボタンをクリックしてマクロを「有効」にすることで、マクロを利用できるようになります。

「セキュリティの警告」メッセージのイメージ

Excelの初期設定では「警告を表示してすべてのマクロを無効にする」になっています。

このメッセージが表示された場合は、やはり危険なマクロが埋め込まれている可能性があるので、ファイルが信頼できる場合のみ「コンテンツの有効化」ボタンをクリックするようにしましょう。

セキュリティ設定は、同タブの「マクロのセキュリティ」ボタンで確認することができます。

「開発」タブの「マクロのセキュリティ」ボタンのイメージ

「トラストセンター」の「マクロの設定」画面が表示されます。通常では、下図のように「警告を表示してすべてのマクロを無効にする」に設定されています。

「トラストセンター」画面の「マクロ」画面のイメージ

すべてのマクロが無効になるため、ブックを開くたびにいちいち警告が表示されることになりますが、セキュリティ上この設定を変更すべきではありません。

では、次に「個人用マクロブック」でマクロを登録してみましょう。

今度はページの余白を設定するマクロを作成してみます。

まず同様に「マクロの記録」ボタンから、下図のように「マクロ名」、「ショートカットキー」を入力し、「マクロの保存先」は「個人用マクロブック」を選択します。

「マクロの記録」画面のイメージ

今回はページ設定の余白を上下左右「0.5」に設定するマクロを作成します。

「ページ設定」画面の「余白」タブのイメージ

マクロの記録を開始し、ページ設定画面で余白を設定後に、マクロの記録を終了します。

登録されたマクロを「マクロ」ボタンから確認してみましょう。すると今度は、登録したマクロ名の前に「PERSONAL.XLSB」の文字列が付加されています。

「マクロ」画面のイメージ

この「PERSONAL.XLSB」とは、

すべてのブックでマクロを利用するために作成される常駐型のブック

になります。

常駐型とはどういうことかというと、どのようなブックを開いた場合でも「PERSONAL.XLSB」が同時に立ち上がるということです。Excelのバージョンや種類によって表示されている場合もありますが、通常は非表示でこっそり裏で立ち上がっています。

「個人用マクロブック」に保存すると、パソコンのフォルダに登録されると先述しましたが、さらに言うと、パソコンのフォルダに「PERSONAL.XLSB」として保存されるということです。

つまり、すべてのブックを開くと伴って起動する常駐型のPERSONAL.XLSBにマクロを登録することによって、すべてのブックからマクロが利用できるというわけです。

通常は「C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART」にマクロが保存されます。

フォルダのエクスプローラー表示のイメージ

そのため、他のPCでこのマクロを利用したい場合は、PERSONAL.XLSBファイルも必要になります。

では、常駐している(裏で起動している)PERSONAL.XLSBブックを確認してみましょう。

まず、新規ブックを立ち上げて、「マクロ」ボタンからマクロが登録されていることを確認します。次に「表示」タブの「再表示」ボタンをクリックします。

「表示」タブの「再表示」ボタンのイメージ

すると「ウィンドウの再表示」画面が表示されます。「PERSONAL.XLSB」を選択します。

「ウィンドウの再表示」画面のイメージ

すると「PERSONAL.XLSB」というブックが表示され、ブックが2つ開いた状態になります。

Excelブックが2つ開いているイメージ

このことが先述のとおり、マクロを登録しているブックを開いている状態であれば、他のブックでもそのマクロを利用することができるということになります。

「作業中のブックA」に登録しているマクロを他のブックBでも利用したい場合は、ブックAを開いた状態でブックBを同時に開くことによって、ブックAのマクロを利用することができます。

つまり、PERSONAL.XLSBは常に裏で開いている状態であり、すべてのブックで利用することができるというわけです。

このことは、じつは「マクロ」画面の「マクロの保存先」のデフォルト設定に「開いているすべてのブック」が設定されているためです。リストメニューから「作業中のブック」に変更すると、作業中のブックに登録されているマクロしか利用できなくなります。

「マクロ」画面のイメージ

また、PERSONAL.XLSBの「マクロ」ボタンから登録してあるマクロを確認すると、「余白設定」のみのマクロ名で登録されており、PERSONAL.XLSBにマクロが登録されていることがわかります。

「マクロ」画面のイメージ

以上でマクロの登録までの作業は終了です。

ちなみに、Excelではデフォルト(初期設定)の余白は上下「1.9」、左右「1.8」となっており、この初期設定を簡単に変更することができません。よく使う余白の値がある場合は、このようにマクロを登録するのもひとつの手です。

もっとも簡単な方法は、下図のように「ページレイアウト」タブの「余白」ボタンより「最後に適用したユーザー設定」を利用すると直近の余白設定を流用することができます。

「ページレイアウト」タブの「余白」ボタンのイメージ

では、最後にマクロの削除方法についてです。

マクロを削除するには、通常「マクロ」画面から「削除」ボタンで削除することができます。

「マクロ」画面の「削除」ボタンのイメージ

そのため、特に削除を学習する必要はないように思われますが、個人用マクロブックとして登録したマクロを削除する場合には一筋縄ではいきません。

個人用マクロブックとして登録したマクロ「余白設定」をこの手順で削除しようとすると、下図のように「表示されていないブックのマクロは編集できません」のメッセージが表示され、削除することができません。

マクロが削除できないメッセージのイメージ

この意味を理解しないと、どうやって削除してよいかわからないと思います。しかし、もうこのメッセージの意味を理解できるのではないでしょうか。

PERSONAL.XLSBブックに保存されているマクロを、他のブックから削除しようとしているためです。「表示されていないブック」というのがPERSONAL.XLSBのことになります。

したがって、PERSONAL.XLSBを表示させることで、個人用マクロブックに登録したマクロを削除することができます。

マクロの削除メッセージのイメージ

また、VBAの編集画面から直接削除することもできますが、この方法は少し専門的になるので割愛します。

個人用マクロブックに登録されたすべてのマクロを削除したい場合は、保存されているフォルダからPERSONAL.XLSBブックを削除してしまえばマクロを丸ごと削除することができます。

ただ、いずれにしても個人用マクロブック(PERSONAL.XLSB)に登録されたマクロは、ワンクリックで削除することができません。こうした特性をよく理解したうえで、自分だけのマクロを作成して使いこなしてみてください。

更新履歴

2022年9月28日
ページを公開。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
なし
サイト
なし