Excelが使えるようになってくると、マクロを勉強してみたい!と思う方は多いのではないでしょうか。
そしてマクロを勉強しようとすると、「まずはマクロの記録をしてみましょう。」という文章に出会ったり、耳にしたりします。
結論から言います。マクロの記録は、勉強を始める初期は使わないほうがいいです。
実際に私も勉強を始めるときに、このマクロの記録で挫折しかけました…。
そこで今回は、同じように
- マクロをつくってみたいけど、勉強の始め方が分からない…
- マクロの勉強を始めたけど、挫折しそう…
- 初心者だけどマクロの記録がよく分からない…
と思っている方に向けて、社会人になってたくさんのマクロをつくれるようになった私が、
マクロの記録がダメな理由と勉強の始め方を解説します!
この記事を読んでしっかり実践すれば、今後のマクロの勉強もスムーズに進めていけるはずです!
とにかくマクロを実行する
マクロを始める上で大事なことは、自分で記述したコードが実行される感動を味わうことです。
実行することで、マクロに対するハードルは一気に下がります。
さらに、「じゃあこのコードをこう変えてみたらどうなる?」と、さらに勉強を進めたくなることでしょう。
そこで、私なりに大事な要素を詰め込んだ1行のマクロを、まずは実行してみましょう。
注意点
と、その前にマクロの注意点です。
マクロは一度実行すると、実行前の状態には戻せません。
そのため初心者の方がマクロを実行する際は、バックアップをとる、お試しブックで実行するなど慎重にお願いします。
今から説明するマクロも同様です。
まずはこのコードを記述しよう
それでは、気を取り直して。
まずはModuleを挿入して、このコードを記述してみてください。(Moduleについては別の記事で解説します。)

Sub test1()
ThisWorkbook.Worksheets(1).Range("A1:C4").Value = ThisWorkbook.Worksheets(2).Cells(1, 2).Value
End Sub
コードはコピーするのではなく、自分で記述することを強く推奨します。
記述することでよく使うコードを覚えていくこともできます。
コピーではなく、自分で記述してみましょう。
「長いし大文字とか空白とか入力大変!やっぱりやめる!」という方、ちょっと待ってください!
コードはすべて小文字で入力してOKです。綴りさえ間違えなければ、自動で勝手に大文字にしてくれます。
ただし、ダブルコーテーション””の中は、自動で変わりません。AやCはカラム(列)を表すので大文字で入力しましょう。
空白も自動で入ります。
そしてVBAには入力補完機能があります。thisworkbook.wと入力すると、入力候補が出てきます。出てきたら矢印キーで選択して、Tabキーで入力補完してくれます。

できそうな気がしてきましたか?きましたね。
それでは、実行してみましょう。
マクロを実行しよう
事前準備
このマクロは事前準備が必要です。
まずはシートを追加しましょう。
追加できたら、追加したSheet2の”B1″セルに好きな文字を入力しましょう。
例では「マクロ入門」と入力します。

マクロの実行
マクロを実行するには、2つのやり方があります。
- F5キーを押す
- ボタン(Sub/ユーザーフォームの実行)をクリック

どちらでもいいので、実行してみましょう。
どうでしょうか。2シート目に入力した文字が1シート目にコピーされましたか?
Sheet2の値を変えてみたりコードの一部を変えてみたりして、どんなマクロ結果になるかも試してみましょう。
値を数式にしてみたりコードの一部を変えてみたりして、実行結果を確認してみましょう。
このコードの意味
詳しい説明は今回は省きますが、このコードは次のような意味になります。
このブック.の1シート目.の”A1:C4″.の値 に
このブック.の2シート目.の1行2列目.の値 を
代入する。
長いですね。画像にしてみました。

このようにVBAのコードには、ピリオド(.)で区切られた1つ1つそれぞれに意味があります。
この意味を勉強して記述していくことで、マクロを習得できるようになっていきます。
マクロの記録がダメな理由と勉強の始め方まとめ
なぜ初心者にとってマクロの記録がよくないのか説明します。
上のコードと同じ動作を手作業でやってみて、マクロ記録してみました。

同じことをやっているのに、行数がすごく多くなりましたね。
実はこのコードには無駄な要素がたくさん含まれています。(ここでは解説しません。)
冒頭でマクロの記録を「使わないほうがいい」と述べたのは、
初心者にとって無駄な要素まで記述されてしまうからです。(あくまでも初心者にとってです。)
これはマクロの勉強を始める上でとても非効率です。
もちろんこの中にも大事な文がありますし、辞書としてマクロの記録を使うこともあります。
ただこれらはマクロの勉強を始める人が最初にやるべきことではないのです。
それよりも、
「自分で記述して実行してみる」
これによって得られる学びがたくさんあります。
これを読み切ったみなさんはぜひマクロの記録ではなく、自分でコードを記述することから始めましょう。
ただし、何度もお伝えしますが、マクロ実行すると実行前の状態に戻すことはできません。
バックアップをとる、コピーしたブックで試していくといった慎重さも必要です。
ちなみにこの記事の1行のコード、私ならこう書き換えます。
Sub test1()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Worksheets(1)
Set ws2 = ThisWorkbook.Worksheets(2)
ws1.Range("A1:C4").Value = ws2.Cells(1, 2).Value
End Sub
「行増えてますよ!」という声が聞こえてきそうです。
このあたりはまた別の記事で一緒に勉強していきましょう!
コメント