「マクロの記録」について

「マクロの記録」は,簡単にマクロを生成してくれるので,とても魅力的です。
しかし,「自分の力でマクロを組みたい」と思っている方には,お勧めしません。
以下に,その理由を説明します。

1.マクロを組む時の,お手本にならない。

  「マクロの記録」は,「ユーザーの操作を,機械的に漏れなく記録する」もので,マクロの基本となる形とは全く違います。
エクセルが,記録しやすい形で,記録しているのです。
したがって,これを手本とすると,わけがわからなくなります。

2.無駄なコードが多い。

 これが,手本にならない一番の理由です。
「マクロの記録」は,ユーザーの操作に関係ありそうなことも,全て記録します。
そのため,ユーザーが操作してないことまで記録します。効率とか,合理性とか,そういったことはお構いなしです。
とにかく,間違いがないように,関係ありそうなことは,やってないことでも,全て記録していきます。
そして,「エクセルにとって記録しやすい記述方式」で記録していきます。

3.実行速度が遅い。

 無駄なコードが多いのですから,速度が遅いのも当たり前ですね。
また,データをコピーするとき,「マクロの記録」では,Copyメソッドを使いますが,自分でマクロを組む時には,Copyメソッドは使いません。
なぜなら,命令文がかなり長いうえに,処理速度もかなり遅いからです。
データを他のセルにコピーするときは,Range
Cellsを使います。すると,格段に処理速度が速くなります。

4.プログラムの利点が生かされない。(繰り返し処理と条件分岐)

 プログラムがプログラムたる所以(ゆえん)は,「繰り返し処理と条件分岐」だと,私は考えています。
「データを元に,適切に判断して,それに合った処理を繰り返し実行する」,これこそがプログラムです。
しかし,「マクロの記録」には,繰り返し処理する部分がありません。条件分岐の判断する部分もありません。
つまり,指示されたことをそのまま実行するのが,「マクロの記録」です。
マクロの命令を1つも知らなくても,結果は出してくれます。
つまり,「ユーザーがやったことを,そのまま実行してくれる」 そういう使い方をする場合は,「マクロの記録」がいいです。

5.「マクロの記録」の本当の使い方。

 「マクロの記録」の本当の使い方は,きっと「手順通り処理を,ボタン1つでできるようにする」ことだと思います。
 この場合,書かれているマクロの意味が全然わからなくても,全く問題ありません。
 また,ユーザーのやった通りの手順で実行するだけなので,それ以上は望んではいけません。
 「繰り返し処理」や「条件分岐」は諦めましょう。
 10
回同じ処理をやりたいのであれば,「マクロの記録」でも10回やって記録しましょう。
 もし,少しでも「マクロの記録」に手を加える気持ちがあるのなら,最初から組んだ方がきれいなプログラムになります。
 「マクロの記録」では,Moduleが自動作成されますが,不要なModuleはその都度削除しておきましょう。整理整頓も大事な作業です。

まとめ

 「マクロの記録」と,「自分でマクロを組む」ことは,まったく別物です。
 「マクロの記録」は,」ユーザーがやった操作を,なぞって行うだけのものです。
 「自分でマクロを組む」とは,自分ではできないようなことを,プログラムにさせるということです。
 例えば,ある処理を1000回繰り返すとか,100個あるデータの中から重複を探し出すとか。
 分からないからと言って,「マクロの記録」に頼るのはやめましょう。
 その時作った「マクロの記録」は,プログラムの意味が分からないまま,結果だけが手に入ります。
 どうしてそうなるのか,全くわからないまま時間は過ぎていくので,技能の上達もありません。
 そして,いつか,また同じことで悩むのです。
 少しずつでいいので,自分でマクロを組みましょう。その方が,絶対楽しいし,充実感が得られます。