0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Q3.A1セルの値を別のセルにコピーするには?

Last updated at Posted at 2020-01-08

今回は、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か所で済むようになります。

分かりやすく数が多いバージョンを作ってみました。

Q3-2.png

この場合、後者はtmpに代入する箇所を変えるだけで対応することができますね。

今回のように非常にシンプルなマクロの場合は、単純に置換すれば済んだりしますが、
ある程度の規模のコードになってくると、単純に置換できない場合もあります。
ぜひ、変数に格納するというどういう利便性があるかというのは理解しておくといいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?