- ベストアンサー
Excel2003でのVBA
WindowsXPでExcel2003を使っています。 Excelにある表をマクロを使って編集したいと思ったのですが、セルの選択の設定で教えてほしい事があります。 まず、横A列~F列、縦1行~6行までの表があります。 A1セルは、空白。 B1セル~F1セルには、1~5の数字が入っています。(見出しなので全て入ってます。) A2セル~A6セルには、a~eのアルファベットが入っています。(見出しなので全て入ってます。) 表の中のデータは、ところどころにしか入っていなくて、全て埋まっていません。 また、横A列~F列というのは固定なのですが、縦1行~6行までという行数は変動します。 この表で、A2セルからF6セルまでを選択したいのですが、行が変動するのでA6とかF6とかでは指定できません。 Range("A2").Select Selection.End(xlDown).Select これで、A2セル~一番下の行(ここではA6セル)まで選択した後、F列まで(列の数は固定です。)選択するにはどうしたらよいのでしょうか? 右下のセルは、空白なので困っています。 Range(Selection, Selection.Next).Select こんなものを考えましたが、これでは一つ右隣しか選択できません。 これを少しいじればいいのではないかと思うのですが、全然違う方法でもかまいません。 どなたか教えていただけないでしょうか? 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>A2セル~一番下の行(ここではA6セル)まで選択した後、F列まで(列の数は固定です。) 文章どおりの考え方からすれば、 これは、 Range(Selection, Selection.Next).Select ↓ Sub RangeSelect1() Range("A2", Range("A65356").End(xlUp).Offset(, 5)).Select End Sub ということかな? Next ではなくて、Offset(行,列) です。 自分の位置は、0,0 です。
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
こんな感じで。 '↓1行目と1列目が見出しなら行も列も対応可 Sub Test1() With Range("A1").CurrentRegion .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Select End With End Sub '↓列はA~Fに固定 Sub Test2() Range(Range("A2"), Range("F" & Range("A65536").End(xlUp).Row)).Select End Sub
お礼
お返事遅れて申し訳ありません。 この方法でも、思ったとおりに走りました。 ありがとうございました。
お礼
この方法ですと、今回の選択範囲のパターンだけでなく、いろいろな範囲を指定できるようになりました。 Offsetですね、覚えておきます。 本当にありがとうございました。