ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.009

マクロ記録でできること、できないこと

2003/2007/2010/2013/2016

Excelで操作しながら自動化ツールを作成できるマクロはとても優れた機能です。
しかも作成した自動化ツールは、アプリケーション用プログラミング言語VBAで記述されますので、VBAを少し加えると、マクロではできないことも可能となり、かゆいところに手が届くようになります。

そうなのです、マクロではできないことがあります。

いつもExcelマクロの講習では、マクロでは限界がある旨をお伝えするとともに、「マクロはどこまでできるのか?」ということをお話します。
今回はマクロ記録の限界点、マクロ記録の特徴、マクロ記録でできることの3つのポイントでご案内していきます。

<マクロ記録の限界点>

早速ですが、マクロにはできないことについてです。

マクロは、教えた操作をひとりでそのとおりやってくれます。とてもおりこうさんなのですが、「マクロは自分で判断することができない」のです。
これは、操作に条件を与えることができないということで、例えば、状況によって操作を変えるようなことです。
ただし、IF関数や条件付き書式をセルに設定することはできます。

そのほか、同じ操作の「繰り返し処理」については、1回分の操作だけ記録し、その後自動で繰り返すようなことはできません。

また、プログラミング言語によくある「変数」も使用できません。

Excelのお仕事における、自動化でよくあるこうしたい、というポイントが限界点になっているとも言えなくありません。

<マクロ記録の特徴>

少しマクロに否定的になってしまいましたが、ここからは大いに肯定していきますね。

その前に、マクロ記録の際に把握しておくべき基本を確認します。

  • 記録時最初にあるセル位置は、番地の認識なく「選択されたところ」
  • セルの選択位置を移動すると、移動した番地が記録される
  • シートやブックを遷移すると、選択したシート名、ブック名が記録される
  • セルの記録方法には、絶対参照と相対参照とがある

最後の絶対参照と相対参照については、ヘルプ「マクロ記録の絶対参照と相対参照とは」で詳しくご案内しています。

もう1つ、マクロ実行の際の、次の特徴を覚えておきましょう。

  • マクロが作成されているブックを開いていれば、他のブックで実行できる

<マクロ記録でできること>

最初にマクロの限界点をお話ししましたが、マクロできるところを部分的に作成することでも、すべてを手作業で行うよりは時間の短縮が見込めるでしょう。

そして、先のマクロの特徴を肯定的に利用することで、次のようなマクロを作成することができます。

  • セルを動かさずに、例えば書式設定をするマクロを作成すると、(セル番地の記録がないため)すべての任意のセルで書式設定をするマクロとなる
  • 他のシートに遷移せずマクロを作成すると、任意のシートで動作するマクロができる
  • 他のブックに遷移せずマクロを作成すると、任意のブックで動作するマクロができる(記録方法によりシート名は同じである必要がある)
  • 相対参照の記録により、例えばそのセル位置から一定位置(範囲)に同じ動作や書式を設定するマクロができる

そのほか、普通にマクロ記録を行うと番地やシートなどが記録されてその対象にしか動作しなくなりますが、ショートカット キーを使用して記録することで、任意のデータ範囲、隣のシート、別のブックなどを選択することができます。
ショートカット キーは、ヘルプ「マクロ記録で可変のデータ範囲を取得するには」でご案内しています。

そして何よりも、マクロのブックを開いていれば他のブックで実行可能なこと、これはマクロ専用のブックと公開用(配布用)のブックを分けることができます。

以前、毎日ダウンロードする件数が一定でない巨大なデータを、使えるデータに整形するための自動化ツールを、マクロだけで作った方がありました。
そのとき、絶対参照と相対参照を切り替えながら、列を挿入して数式を挿入したり、数式をコピーして値の貼り付けを行なったり、ショートカット キーも使ってデータ範囲を取得したりと、マクロを徹底的に有効利用しました。

今回は言葉だけでの説明で恐縮ですが、とにかくたくさんテストのマクロを作って、動作を確認してみてください。
マクロだけでも、操作に条件がないのであれば、工夫次第で自動化可能となることがたくさんあります。
作ってしまえば後が楽になりますので、是非いろいろな動作に挑戦してみてください。

twitter hatena line pocket

関連ヘルプ

マクロ記録で可変のデータ範囲を取得するには
ワークシートにボタンを作成し、マクロを割り当てて実行できるようにしたい
マクロ記録の絶対参照と相対参照とは
マクロのセキュリティ警告メッセージを表示させたくない
作成済みのマクロに、後からショートカット キーを割り当てるには
マクロは削除したのに開くときにセキュリティ警告が表示される、マクロの完全削除
マクロ記録はどこに記録されているのか
別のブックにマクロをコピーしたい