'以下は実行可能
Sub sample1()
Range("A3").Value = Range("A1").Value
End Sub
'以下はエラーが出て実行できません。
'「A3」に対して、「変数が定義されていません」と言われます。
'A3という変数がないか?と探しているからです。
Sub sample2()
Range(A3).Value = Range("A1").Value
End Sub
'以下では、「A3」という名前の変数に「"B5"」という文字列を格納しています。
'よって、「Range(A3).Value」とは、「Range("B5")」、つまり、セルB5のことを指します。
Sub sample3()
Dim A3
A3 = "B5"
Range(A3).Value = Range("A1").Value
End Sub
黒須 紀子さんの投稿
(投稿ID: 5250)
なるほど、と理解したつもりですが、すぐ混乱して間違えそうです。
小川 慶一さんのコメント
(コメントID: 7444)
> Rangeの後を文字列で指定するのがぴんと来ません。
番地の指定の文字列の内容は、エクセル関数のときと同様ですね。
関数: =SUM(A1:A3) v
VBA: Range("A1:A3") → セルA1からA3まで。
ダブルクオートで囲わないと、こびとちゃんは、A1 や A3 といった名前の(すでに定義済の)変数等を探そうとしてしまいます。
以下、参考にしてください。
手を動かしつつ、いろいろ試しつつ、とやってみられると良いかと思います。
失敗は、気にしないで。
あと、このページの他の方へのコメントでも書きましたが、ここはそれほど力入れなくても大丈夫です。
そこそこ理解できたような気がしてきたら、先に進んでください。
そのあと、基礎編フォローアップ演習やりつつ、思い出したらまたこのページで練習してみていただければと。
たぶん、そのときにはまた違う感触を持たれることかと思います。
あと、やはり他の方とのやりとりでも書いていますが、ポイントは、文字列を囲う "ダブルクオート" のペアはどれとどれなのか?ということを意識することです。