Excel VBAでセルに値を入れるときは、以下のようにCellsやRangeを使うのが多いと思う。
'例:セルB1に数値を入れる
Cells(1,2).Value = 100
Range("B2").Value = 100
ところが、会社でExcelのマクロを見ているとこんなコードを見つけてしまった。
Cells(1,2).Range("B2") = 100
Cellsの部分だけを見るとセルB1だと思ったけど、RangeでセルB2を指定している…。
これは一体どのセルに値が入るのか??
答え
セルC2だった。
なんか納得いかなかったのでマイクロソフトの公式ページを見てみた。
なんとなくだけど、Rangeで指定したセルの相対位置をCellsで指定しているんだろうということは分かった。
この書き方の意図は分からないが…。
インターネットで調べた限りではこの書き方を紹介しているサイトはなかったので、おそらく一般的な書き方ではないのだと思う。
でも、コンパイルが通るということは文法的には問題ないということか…。