今回は、A1セルのデータを別のセルにコピーするマクロを作っていきます。
コピー先のセルはA3セルとします。
2通りの解答例をご紹介します。
以下となります。
Sub Q3_Answer_1()
Range("A3").Value = Range("A1").Value
End Sub
Sub Q3_Answer_2()
tmp = Range("A1").Value
Range("A3").Value = tmp
End Sub
あえて、2つ作っています。
まず、1つ目のQ3_Answer_1()について。
こちらは直接、A1セルの値をコピーしているパターンです。
Q2で作ったマクロをちょいといじるだけのシンプルな構成です。
一番手っ取り早く書くならこれです。
続いて2つ目のQ3_Answer_2()。
こちらは、tmpという変数を用意して、そこに一旦、
A1セルのデータを格納しています。
なぜ、わざわざ変数に格納するという一手間を加えているのでしょうか?
たとえば、10個のセルに今回のようにA1セルの値をコピーしようとするとします。
Q3_Answer_1()のような書き方をすると、後で変えようとした時に、少々手間が発生します。
あとから、A1セルではなくて、やっぱりB1セルの値をコピーする必要が出てきたと
想定してみてください。
その場合、10箇所変更する必要が出てきます。
(A1をB1に変える)
ところが、一旦、最初に変数に格納しておくことによって、
後で変える場合の修正箇所は1か所で済むようになります。
分かりやすく数が多いバージョンを作ってみました。
この場合、後者はtmpに代入する箇所を変えるだけで対応することができますね。
今回のように非常にシンプルなマクロの場合は、単純に置換すれば済んだりしますが、
ある程度の規模のコードになってくると、単純に置換できない場合もあります。
ぜひ、変数に格納するというどういう利便性があるかというのは理解しておくといいですね。