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

クロという言葉を耳にしたことがあるでしょうか?これは、WordやExcelを使いこなしていくうちに必ず出てくる用語ですが、なかなか活用するまでに至らない方も多い技術です。

それもある意味当然で、簡単にいうとマクロとは、プログラムの処理を「自動化」するということですが、自動化するということは、様々な操作をまとめて一連の処理として呼び出せるように設定するということです。

Wordに限らず、ExcelやPowerPointでも活用されるマクロは、ソフトウェア上の複数の操作手順を一連の処理としてまとめ、自動的に実行できるようにする拡張機能と定義されています。要するに、

プログラミングの知識が必要になる

のです。そのため、なかなかマクロを解説することは難しいのですが、本項ではそこまで高度な解説は行いません。マクロの概要を知り、簡単なマクロの記録、そして実行について学習します。

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

ではまず、マクロの概要を理解しておきましょう。

マクロとは先述のとおり、いろいろな操作をひとつの命令にまとめるということで、活用方法としては、Wordでいつも操作する作業があるとすれば、それをひとつにまとめておき、ボタン操作一発でその一連の処理を実行するという使い方をします。

例えば、40文字40行のページ設定をよく使う場合に、そのページ設定にかかる一連の作業をマクロに登録しておけば、ボタン操作ひとつでページ設定が行えるようになります。こういった「よく行う作業」をマクロに登録しておけば、作業が飛躍的に効率化するというわけです。

実際に、40文字40行のページ設定をマクロに登録してみましょう。じつはこの程度の簡単な操作については、プログラミングの知識がなくてもマクロに登録することができます。

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

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

そしてもうひとつは、Wordにあるマクロ記録機能を使用してマクロを記録する方法です。今回は、この方法を使ってマクロを登録してみます。

まず、マクロ記録機能を使うには、「開発」タブを表示させる必要があります。ドロップダウンリストの作成 で学習のとおり、「開発」タブを表示させましょう。

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

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

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

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

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

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

その下の「マクロを割り当てる対象」についてはひとまず飛ばして、その下の「マクロの保存先」を確認します。この部分は、デフォルト(初期設定)では「すべての文書(Normal.dotm)」が指定されています。

リストメニューを開いてみると、「すべての文書(Normal.dotm)」と「文書1.docx」(いま開いているWord文書のファイル名)が選択できるようになっています。

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

これは、すべてのWord文書で利用できるように保存するか、当該Word文書のみ(この場合は「文書1」のみ)で利用できるように保存するかを選択する部分になります。

たいていのマクロはすべてのWord文書で使用できなければあまり意味がないので、「すべての文書」のままでかまいません。プログラミングを駆使したマクロで、動作の保証がないような複雑なマクロを作成した場合は、当該ファイルだけに保存する場合があります。

そして、マクロの説明があれば「説明」欄に記入し、最後に「マクロを割り当てる対象」を設定します。この部分は、マクロを呼び出す「ボタン」を新たに作成するか、キーボードの任意のキーに割り当てるかを選択する部分になります。

左側の「ボタン」のほうを選択すると、「Wordのオプション」画面が立ち上がります。

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

クイックアクセスツールバーにマクロ「ページ設定」のボタンを追加すると、下図のようにマクロを呼び出すボタンが追加されます。(クイックアクセスツールバーについては、次項で詳しく解説します)

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

右側の「キーボード」のほうを選択した場合は、「キーボードのユーザー設定」画面が立ち上がります。

「キーボードのユーザー設定」画面のイメージ

画面中央部分の「割り当てるキーを押してください」のテキストボックスに任意のキーを入力します。入力といってもキーを押せば自動的に入りますが、単純な「A」キーや「B」キーでは入りません。基本的には「Alt」キーもしくは「Ctrl」キーとの組み合わせになります。

ここでは、「Ctrl」キーと「P」キーを同時に押してみました。すると、下図のようにテキストボックスにキーの組み合わせが自動入力されます。

「キーボードのユーザー設定」画面のイメージ

この状態で「割り当て」ボタンをクリックすると、「現在のキー」の部分にキーの組み合わせが登録されます。その後、「閉じる」ボタンで閉じます。

すると、通常のWordの画面に戻りますが、カーソルが「カセットテープ」のようなアイコンに変化しています。

カーソルが変化したイメージ

この状態で、もうすでに記録が始まっている状態になります。ここから何かの操作をすれば、それがマクロとして記録されます。このままページ設定を行ってみましょう。

ページ設定画面より、文字数「40」、行数「40」に設定し、「OK」ボタンで閉じます。(ページ設定については、基本操作編 ページ設定 を参照してください)

ページ設定画面のイメージ

もとのWord文書画面にもどり、「開発」タブより「記録終了」ボタンをクリックします。(「マクロの記録」ボタンから「記録終了」ボタンに変化しています)

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

すると、ボタンが「マクロの記録」に戻り、マクロの記録が終了します。これで作業は終了です。その下にある「記録の一時停止」ボタンは、記録が一時停止するだけで終了するわけではありません。「マクロの記録」から「記録終了」をクリックした時点までの操作がマクロとして登録されます。

記録されたマクロを確認するには、同タブの「マクロ」ボタンをクリックします。すると、「マクロ」画面が表示されます。記録した「ページ設定」が画面に登録されていることを確認しましょう。

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

この画面の簡単な説明をすると、「実行」ボタンは文字どおりマクロを実行するボタンです。ただし、キーに割り当てているので、この画面から実行することはあまりないと思います。

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

その下の「編集」ボタンをクリックしてみましょう。すると、VBAの編集画面が立ち上がります。これが本来のマクロ作成画面になります。

VBAの編集画面のイメージ

上図のように、単純なページ設定だけのマクロであっても、何行もの命令が集まってできていることがわかります。この値、例えば「TopMargin」は上の余白の意味ですが、これを「20」に変更すると、マクロを実行したときに、あわせてページ設定の上の余白を「20」に設定することができるようになります。直接コードを編集したい場合には、「編集」ボタンより修正を行います。

そして、その下の「作成」ボタンは新たなマクロの作成、「削除」ボタンは登録しているマクロを削除する場合に使います。「構成内容変更」ボタンは、マクロをコピーして他のファイルでも使えるようにする場合などに使うボタンになります。

さて、以上でマクロの登録は完了です。保存先に「すべての文書」を選択しているので、すべてのWord文書で利用可能になります。現在の文書を閉じて、新規で別のWord文書を立ち上げてみましょう。

そして、「Ctrl」キーと「P」キー(マクロに割り当てたキー)を同時に押してみます。マクロが実行されてページ設定が行われることを確認してください。ページ設定画面で正しく設定できていたら成功です。このように、マクロは簡単に作成することができるのです。

ところで、「すべての文書」ではなく、「文書1.docx」(開いているWord文書のファイル名)を選択してマクロを登録した場合は、通常のファイル形式「.docx」で保存することができません。「.docx」はマクロを無効にしたファイル形式であり、マクロを有効にしたファイル形式「.docm」で保存しなければならないので、注意が必要です。(ファイル形式については、主な拡張子 を参照してください)

保存形式のリストメニューのイメージ

一方、「すべての文書(Normal.dotm)」に保存した場合は、「.docx」に保存することができ、かつマクロも有効に利用することができます。

ただ、どちらの形式で保存しても、マクロに対してはセキュリティ上の対策により、下図のようなメッセージが表示されます。「コンテンツの有効化」ボタンをクリックして一度マクロを「有効」にすると、以後は利用できるようになります。

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

なぜ、マクロがこのようにセキュリティの制限を受けるのかというと、WordやExcelのマクロ機能を悪用した「マクロウィルス」が存在するからです。(ウィルスについて詳しくは、セキュリティ対策 を参照してください)

通常、Wordの設定は「警告を発してすべてのマクロを無効にする」になっています。上図のようなメッセージが表示された場合は、危険なマクロが埋め込まれている可能性があります。信頼できる場合のみ「コンテンツの有効化」ボタンをクリックするようにしましょう。

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

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

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

「セキュリティセンター」画面のイメージ

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

さて、以上のように、マクロは意外と簡単に作成して使うことができます。いろいろな操作を記録して便利なマクロを作成しましょう、といいたいところですが、やはりそう簡単にはいきません。

この方法では、あまり複雑な操作は記録できないのです。例えば、入力している文字列や図形の選択をする場合、マウスを使用して選択することができません。マウス操作が必要な処理を登録するには、やはりVBAプログラミングの知識が必要になります。

というわけで、今度はインターネット上に公開されている便利なマクロを利用してみましょう。VBAの知識がなくても、コードをコピーして貼り付けてしまえば良いわけです。

今回は、以下のサイト(quasiEinsteinさんのサイト)よりコードを拝借して、活用させていただきます。

サイト内の「マウスで選択した部分をGoogle検索するマクロ」のコードを利用してマクロを登録してみましょう。ただし、上記サイトにも記載があるように、あくまで、自己責任で利用するということを忘れないでください。マクロの誤動作によって起こった損害については責任を追うことができません。

サイトよりコードを範囲指定してコピーします。そして、「開発」タブより「マクロ」ボタンをクリックします。適当なマクロ名をつけて(後で変更になります)、「作成」ボタンをクリックします。

すると、コードの編集画面が表示されます。下図のように、コードはほとんど何も入力されていません。ここに、コピーしたコードを上書きします。

VBAの編集画面のイメージ

すべて上書きします。(コードを残して貼り付けないように、すべて書き換えます)

VBAの編集画面のイメージ

これで画面を閉じると、「google_search」というマクロが作成されています。

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

このマクロは、サイトの解説にあるように「マウスで選択した部分をGoogle検索するマクロ」です。Word文書内の適当な文字を範囲指定してマクロを実行してみましょう。(ショートカットキーを割り当てる方法については次項で解説します)ブラウザが起動し、Googleで検索されれば成功です。

ただし、この方法では、前述のように悪意のあるコードや悪意のあるマクロをダウンロードしてしまう場合があります。信頼できるサイトでなければ安易に利用するのは控えるようにしましょう。また、ネット上からダウンロードしたマクロファイルは、開く前に必ずウィルス対策ソフト等でチェックしてから開くようにしましょう。

また、マクロはWordに限らずOffice製品全般で使えます。便利な反面、それを悪用した危険も潜んでいるので、安全性には十分注意する必要があります。

以上で、マクロについての学習はひとまず終了です。興味を持った方は、いろいろなサイトでマクロの解説がされています。VBAの知識を深め、便利なマクロを作成してみてください。

更新履歴

2015年7月6日
ページを公開。
2018年1月17日
ページをSSL化によりHTTPSに対応。

参考文献・ウェブサイト

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

翻訳などに役立つMicrosoft Office WordのVBAマクロ
http://quasieinstein.web.fc2.com/wordmacroVBA.html
Word:マクロの使い方と登録方法
http://www.hi-ho.ne.jp/tomita/tips/tips_wd_000.html