目的のセルを基本に則って指定
今回も訪問して下さりありがとうございます。
今回はセル範囲の指定を取り上げたいと思います。
こんな表が有った時に、「A2からA10までを指定」してみましょう。
Range("A2:A10").Select これで範囲指定出来ます。
でも、最終行は追加されるので、一般的には下に表が追加作成されても対応できるように記述することが多いと思います。
その場合 Range("起始”,"停止")
が一般的です。
Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)).Select
でも...。たまに分かりにくい記述に出会います。
Range("A2", Range("A2").End(xlDown)).Select
確かに、これでも選択できます。
でも、これならちゃんと変数で最後の行を設定してほしいです。
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:A" & lastrow).Select
上記をCellsで記述すると...。
Range(Cells(2, "A"), Cells(lastrow, "A")).Select
こんな感じでしょうかね。
数字はダブルクォーテーションで囲まない。文字列はダブルクォーテーションで囲まないとダメ!!
この基本はとっても大切だと思います。
じゃ、空白の「C2からC10」は変数(lastrow)を使わずに選択できる?
そう聞かれたことが有りました。
Offsetを使えば大丈夫です。
Range(Cells(2, 3), Cells(Rows.Count, 2).End(xlUp).Offset(0, 1)).Select
空白部分の最終行は取得できません。
でも隣の行を上手く使ってOffsetでずらせば良いんです。
先ほどの変数を使えば、記述はシンプルになります。
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 3), Cells(lastrow, 3)).Select
こんな記述もよく見かけます。
Range("C2:C" & lastrow).Select
Rangeで記述すると短く記述出来ます。
変数「lastrow」は便利です。
でも変数をわざわざ使わなくても...。ってときも多いです。
セル範囲の指定を上達させる為に、なるべく素のままセル範囲を選択する癖を付ける様にしています。
じゃ、必要な部分全範囲指定して!!
僕はいつもこう思ってます。
赤い部分(左上の事が多い→レフト・上) 「レフウエ」
青い部分(右下の事が多い→ライト・下) 「ライシタ」
この二つの指定でセル範囲が特定できる!!
Range(Cells(2, 1), Cells(Rows.Count, 2).End(xlUp).Offset(0, 1)).Select
もちろん単なる「ウエ」「シタ」って事も有りますけどね。
今回はセル範囲の指定でした。
楽しみにしています。
QRコードをタップ