マクロの記録でExcelのVBAを体験してみよう!実例でよく分かる

Excelには、人の作業を記録して自動的にプログラムを作る「マクロの記録」という機能があります。

「マクロの記録」で作成されたプログラムは、プログラミング言語VBAで記述され、自動作成されたコードの内容を確認したり編集することも可能です。

実際の業務をVBAで自動化するときには、「マクロの記録」ではなく、正確にコードを書いて作成することを強くおススメしますが、今回の記事では入門用と位置付けて、「マクロの記録」を使ってVBAを体験してみたいと思います。

目次

マクロの記録とは

記録した操作がVBAで記述される

事務職さん

ねぇ、キャプテンVBA♡
VBAを実際に試してみたいんだけど、
何か簡単なコードを教えてくれないかな。

キャプテンVBA

それなら「マクロの記録」の機能を
使ってみるといい!

事務職さん

「マクロの記録」ってなぁに?

キャプテンVBA

「マクロの記録」を使えば、
自分がExcelで操作した内容が
自動的にVBAで記述されるんだ!

事務職さん

そんなことができるの?

キャプテンVBA

できるぞ!
でも、補完的に使うものと理解したほうがよい。
「マクロの記録」だけに頼ってはダメだ!


あくまで部分的・補完的に!

「マクロの記録」は、ラクにプログラムコードが生成される機能として、世間的には評判が良いようです。

ただし、当サイトでは「マクロの機能」の使用はおススメしません

補足ですが、業務自動化のテクノロジー「RPA」にも同種の『レコーディング』という機能があり、こちらも評判が良いです。が、わたしは反対派です

この機能は、あくまで単発の人間の操作を記録するだけであり、処理の概要や操作の意図までは理解してくれません。処理の過程で発生したムダな操作もすべて記録され、あとで見返した場合や客観的に見た場合、何のためのコードか分からず、メンテナンス性が極端に悪くなってしまうのです。

この記事の最後で具体的に紹介しています。

また、マクロを作ったユーザー自身がコードの内容を理解しておらず、実務で使ってしまうのはリスクでしかありません。

実務とは、処理の分岐や繰り返しの概念も必要ですが、「マクロの記録」ではそのような実用的なコードは、まず作成できません。あくまで部分的・補完的な使用に留めましょう!

キャプテンVBA

厳しいことをいうが、
中途半端なプログラムほど
危険なものはないんだ!

事務職さん

そうだよね。
しっかり学習しなきゃね。

マクロの記録の使い方

この章では、マクロの記録を実際に試して、VBAコードが自動的に記述されることを体験してみます。

マクロの記録を実行する場合には、ExcelVBAが使える状態になっている必要があります。具体的にはファイルタブに「開発タブ」が表示されていることが条件です。まだ設定をしていないのであれば、下記の記事を参考に設定をしてください。

「開発タブ」が表示されていることが条件

記録する操作について

この章で、「マクロの記録」を使って記録する操作は次の通りです。

  1. A1セルに「Test」と入力する
  2. 文字サイズを20にする
  3. 文字の色を赤にする
  4. 文字を太字にする

実践:マクロの記録

①Excelの左下のマクロを記録するボタンをクリック
※①が無ければ、開発タブ内のマクロの記録をクリック
マクロの記録のダイアログが開く
マクロ名は任意でよい。OKをクリック
③左下のマクロの記録ボタンになっていれば、記録が開始されている
④セルA1にTestと入力
⑤ホームタブ内でフォントサイズを20に設定
文字の色を赤に設定
太字に設定
⑧3つの設定が終わったら、左下のマクロの記録ボタンをクリック(停止)
⑨以上でマクロの記録は完了

マクロを実行してみよう

前処理

今回の操作は、「マクロの記録」機能を使っている関係で、意図しない余計な処理が含まれています。そのため、実行前に少しコードを編集する必要があります。下記の手順通り、コードを修正してください。

<手順>

開発タブ内のマクロをクリック
②ダイアログの右側の編集をクリック

VBAで記述されたコードの中に Range(“A1”).Select と記述された行があると思います。この一文を削除します。

Range(“A1”).Selectを削除
④この図のようになればOK

削除後、特に何らかのボタンをクリックする必要はありません。削除するだけです。削除後の行間詰めも不要です。

キャプテンVBA

これで実行の準備はOKだ!

実行

①Excel上のカーソルをセルC1に合わせる
次にVBA編集画面の実行ボタン(▷)をクリック
②セルC1に対して、A1と同様の操作が実行されたらOK

②では、例としてセルC1を指定しました。実際は、カーソルが合っているセルに対して同様の操作が実行されます。お試しください。

改めてVBAコードを確認してみよう

自動作成されたVBAコード


事務職さん

やっぱりプログラミング言語って難しいのね・・
たった3つの操作なのにこんなに英語が書かれるの?

キャプテンVBA

正確には違うぞ!
これは「マクロの記録」で自動作成されたコードだから、
余計なコードも含まれている。

事務職さん

そうなの・・?
実際はもっと簡単?(だといいな♡)

キャプテンVBA

もう少し簡単だ!
そして、何となく推測もし易いコードだ!
ワタシが書いたコードを紹介しよう!

キャプテンVBAが書いたコード


事務職さん

あっ!全然違う!
これなら分かりやすいかも♡

キャプテンVBA

だろ!

自動作成と人間が作成したコード比較

自動作成のコード
人間作成のコード

この2つのVBAコードを実行した場合、基本的に同じ結果が返されます。
(Testと入力され、文字サイズを20、文字色を赤、太字に設定)

「マクロの記録」を使って自動作成されたコードには、意図しない余計なコードが多く含まれています。一方、人間が作成したコードは、この記事を読んでいる方であれば、プログラミング経験者でなくても何となく推測できるコードになっているのではないでしょうか?

わずか3つの操作だけで、これだけの差が表れてしまうのです。当サイトが「マクロの自動記録」をおススメしない根拠です。

結果は同じにしろ、自動作成されたコードはメンテナンスは極めて困難で、普通はプロのプログラマーでもお手上げです。一から作り直したほうが早いと感じるでしょう。また、エラーが発生した場合も、エラーの原因・特定が極めて困難化します。

繰り返しますがVBAを実務に取り入れるのなら、「マクロの自動記録」に頼らずに、学習したうえで活用しましょう!

実践しよう!

上記「人間が作成したコード」は、画像の通りにコードを入力すれば実際に実行して試すことができます!お時間があれば、お試しください。(当サイトでは今後も多くの練習用コードを紹介するように頑張ります!)

キャプテンVBA

今回は少し厳しめの口調になったが、
怒っている訳じゃないぞ!

では、今日はここまで!

次回は、簡単なVBAの編集にチャレンジだ!

よかったらシェアしてね!
  • URLをコピーしました!
目次