マクロの自動記録には初心者にも使いやすい一方で、記録できない操作やデメリットも多いです。
たとえば、以下のことは記録できなかったりされなかったりします。
1. 繰り返し処理
2. 条件分岐
3. エクセル以外の操作
4. マウス操作
5. その他
他にも、マクロの自動記録のデメリットとして以下があります。
1. 余計なキーボード操作まで記録
2. 自動記録されたコードが読みづらい
3. 「マクロ実行」で想定通りに動かないことがある(相対参照)
この記事では、上記の「マクロの自動記録」のデメリットを紹介していきます。
またデメリットへの対処法を紹介し、マクロ自動記録の活用法を解説していきます。
目次
「マクロの自動記録」の使い方を事例で解説
マクロの自動記録の使い方については、以下の記事で詳しく解説をしています。
自動記録を使えるようになりたい人は、こちらの記事をご覧ください。
マクロ自動記録で「記録できないこと・記録されないこと」
1. 繰り返し処理
2. 条件分岐
3. エクセル以外の操作
4. マウス操作
5. その他
上記の内容はマクロの自動記録で作成できません。
一つずつ解説していきます。
1. 繰り返し処理
マクロの自動記録では「範囲を自動調整する」というコードは作成されません。
たとえば、「2行目から11行目まで順位を出力する」というマクロを自動記録で作成した場合、12行目~16行目までのデータを追加しても、処理を行ってくれないのです。
そのため、最終行を取得して、「2行目から最終行まで処理を行う」というマクロを自分で編集して作成する必要があります。
他にも、「各シートごとに繰り返し処理をする」コードは自動記録では作成できません。
このような繰り返しのコードは実務で使うマクロには必須ですが、自動記録ではこれを作成できないのです。
これがマクロの自動記録の致命的な欠陥の一つです。
2. 条件分岐
上記は「C列のテスト点数の高い順にD列に順位を入れ込む」という操作をマクロの自動記録で作成したものです。
このとき、「C列の点数が同じなら、同じ順位をD列に出力する」というコードは自動記録では作成できません。
「もし~なら、××する」条件分岐行ごとに、処理するマクロを作りたいなら、if then文や作成する必要があります。
このような条件分岐のコードもまた実務のマクロには必須ですが、自動記録では作成できないのです。
これもマクロの自動記録の大きなデメリットの一つです。
3. エクセル以外の操作
マクロの自動記録では「エクセルだけでは処理できない作業」コードを作成できません。
たとえば、「Outlookを操作して自動でメールを送る」や「所定のフォルダにあるファイルを全て処理する」ようなコードは自動作成されないのです。
そのため、より効率化するマクロを作成したいなら、自分でマクロを編集しなくてはならないのです。
ちなみにエクセル以外の操作についてマクロのコードを以下の記事で紹介しています。
エクセルマクロでウェブ操作をする
このように実務の効率化を図ることを目的とした場合、「マクロの自動記録では物足りない」と言わざるを得ないのです。
4. マウス操作
エクセルを操作するときのマウス操作は記録されません。
たとえば、「マウスを右に10cm、下に20cm動かして左クリックをする」という作業はマクロの自動記録では作成できません。
そのため、マウス作業を記録したいなら、自動記録以外の方法を行う必要があります。
5. その他
「マクロの自動記録」で記録できない操作はいくつかあります。
たとえば、上記のようにエクセルの翻訳は自動記録では記録されません。
ここではその他としましたが、翻訳以外にも自動記録で記録できない操作がある場合があります。
そのようなリスクもあるため、エクセルの操作全てを記録できるとは限りません。
続いて、マクロの自動記録のデメリットについて紹介していきます。
「マクロの自動記録」のデメリットや注意点
2. 自動記録されたコードが読みづらい
3. 「マクロ実行」で想定通りに動かないことがある(相対参照)
以下で一つずつ説明していきます。
注意点1|余計なキーボード操作まで記録
マクロの自動記録では、操作を間違えた場合も記録されてしまいます。
たとえば、黄色にしたいセルの位置を間違えて、そのセルを赤色にし、そして黄色にした場合
マウスでスクロールをした場合、以下のコードが記録されてしまいます。
なお、このような間違った操作は[Ctrl] + [Z] で元に戻すことができます。
一方で、「マウスでのスクロール」や「セルのクリック」などは、[Ctrl] + [Z]でもリセットできません。
対処法としては、間違い操作がマクロの自動記録に記録されているかどうかを確認しながら、自動記録を作成することです。
たとえば自動記録でマクロのコードを作成するときは、コードを見ながらエクセルを操作することです。
そうすれば、不要な操作がコードに残っているかどうかを確認できます。
注意点2|自動記録されたコードが読みづらい
上記は以下の記事で紹介したマクロの自動記録で作成したコードです。
自動記録されたコードは、初心者には難しくて解読ないことが多いです。
初心者のうちは、ある程度割り切りが必要です。
分からない部分はあきらめてしまうことも良い判断です。
マクロを自分で書けるレベルになると、自動記録の内容もスラスラ読めるようになります。
そして、自動記録で作成したコードを手書きで修正・メンテナンスして、加工することができるようになります。
注意点3|セルの場所を相対参照(R1C1)で記録されることがある
マクロの自動記録で矢印キーを使うと、相対参照されることがあります。
相対参照とは、「今あるセルから右に○○セル分、下に○○分ずれたセル」というようにセルの位置情報を取得する方法です。
反対に、絶対参照というのがあり、これは「セルA1」というように、セルの場所を指定して取得する方法です。
相対参照は、初心者の方には不便なことも多いです。
そのため、自動記録を作成するときは、マウスでセルをクリックすることをオススメします。
たとえば相対参照で記録したマクロを使うと以下のようなデメリットが発生することがあります。
「セルA1」から、「右に4セル」「下に5セル」で「セルE5」を対象にしていた
●自動記録で作成したマクロを使うとき
実行時のセルが「A2」を選択していた場合、「右に4セル」「下に5セル」移動したセルとして「セルE6」が対象になる
したがって、初心者のうちは、マクロの自動記録を作成するときは、マウスでセルをクリックすると失敗するリスクを減らせます。
自動記録の限界は、マクロを手書きで編集できると突破できる
マクロの自動記録は便利な機能です。しかし、ここまでお伝えしたようにデメリットもあります。
とくに「繰り返し」や「条件分岐」が自動記録できないのは、大きな欠点です。
正直に言って、マクロで仕事を自動化するときに「繰り返し」や「条件分岐」ほどよく使うものはありません。
この2つが使えないことは、飛車角落ちで将棋をするようなものです。
そのため、もしあなたがマクロで仕事を効率化したいと考えているなら、「繰り返し」や「条件分岐」は避けて通れません。
しかし、初心者のうちはこれらを学ぼうとしても「なかなかうまくいかない」、「時間がかかってしまう」、「結局できなかった」となりがちです。
そこでおすすめは動画や説明を聞きながら学ぶことです。
動画のオススメはこちら(無料)の動画です。
私も実際に試して、良い教材であることは確認済みです。
実際に教材を試して、以下のように短期間で難易度の高いマクロを書けるようになりました。
自動記録で作成したマクロを手書きで修正できるようになれば、あなたが自動化できる作業の幅もグッと広がります。
ぜひチャレンジしてみてください。
エクセルマクロVBAに関してもっと知りたい人はこちら
エクセルマクロVBAの情報は知りたい方は、こちらの記事もオススメです。