【VBAで感動する瞬間⑧】 Cells?Range?Offset?順番バラバラ問題は“行→列”で一気に解決!
こんにちは。 ごんた@VBAレッスン です。お読みいただきありがとうございます。 今日は、VBAを学び始めた方が必ずつまずく 「セルの指定の順番」についてお話しします。Excelは「列 → 行」で見えるのに、 VBAは「行 → 列」だったり、 Rangeだけ「列 → 行」だったり…。 さらに Offset が混ざると、 「もうどこのセル触ってるのか分からない!」という大混乱が起きます。でも安心してください。 今日の内容を理解すると、一気にスッキリします。 ■ Excelは「列 → 行」、でもVBAはそうじゃないまず、Excelの見た目はこうです。- B3(列B → 行3)これは直感的で分かりやすいですよね。ところが、VBAに入ると順番が変わります。■ Range は Excelと同じ「列 → 行」```vbaRange("B3")```これは Excel と同じ感覚で使えます。■ Cells は「行 → 列」```vbaCells(3, 2) ' → B3```Excelと逆なので、ここで混乱が始まります。■ Offset も「行 → 列」```vbaOffset(行のズレ, 列のズレ)```Cells と同じ順番です。■ ここで大混乱が起きる例えば、これ。```vbaRange("B3").Offset(1, 2)```これは B3 から 1行下・2列右 → D4。でも Cells で書くとこう。```vbaCells(3, 2).Offset(1, 2)```やっぱり D4。ただし、 - Range は「列 → 行」 - Cells と Offset は
0円