
エクセルVBAで範囲の指定をしたいです(初心者)
列AからJがデータが入る範囲です。
列AとBとCには必ず数値等が何かしら入ります。
列Dは常に空白です。
列E以降は何か入ることも入らないこともあります。
7行目までデータがある場合、
A1セルからこの場合はJ7セルまでを範囲指定したいのですが
行数は未定なので、
Range("A1").Select
Range(Selection,Selection.End(xlDown)).Select
でA列のデータ最終行まで下がり、そこから9つ右の列までを
範囲指定するというのがよくわかりません。
自動記録で絶対参照と相対参照を切り替えてやってみたのですが、
どうしても
Range(Selection, Selection.End(xlDown)).Select
ActiveCell.Range("A1:J7").Select
と常にA1からJ7が指定になってしまいます。
バージョンは2003です。
つたない質問文で申し訳ありませんが、
どなたか宜しくお願いいたします。

No.3ベストアンサー
- 回答日時:
4つのコードを書きました。
それぞれで調べてみてください。段階的に書きました。基本的には、標準モジュールに書きます。
元のコードを直すと、
Sub Test1()
Range("A1").Select
Range(Selection, Selection.End(xlDown).Offset(, 9)).Select
End Sub
次に、少しマクロらしくすると
Sub Test2()
Range("A1", Range("A1").End(xlDown).Offset(, 9)).Select
End Sub
もう少し、マクロらしくすると、
Sub Test3()
Dim i As Long
i = Range("IV1").End(xlToLeft).Column
Range("A1", Range("A1").End(xlDown).Offset(, i - 1)).Select
End Sub
より実践的に書くと以下のようになります。
Sub Test4()
Dim i As Long, j As Long
If WorksheetFunction.CountA(Cells) = 0 Then Exit Sub
With ActiveSheet.UsedRange
'Range("A1").SpecialCells(xlCellTypeLastCell) 'これは思ったようには行かない
j = .Cells(.Cells.Count).Column
i = .Cells(.Cells.Count).Row
End With
Range("A1", Cells(i, j)).Select
End Sub
できました、できました!
このようなつたない質問文しか書けないような初心者でも
理解できるような易しいマクロ文から実践まで示していただき
大変参考になりました。
とても感謝しております。
まだまだこれから勉強をしていこうと思いますので
またお世話になることがあるかと思いますが、
なにとぞ宜しくお願いいたします。
本当にありがとうございました。
No.2
- 回答日時:
Range(Selection, Selection.End(xlDown)).Select
Columns("A:J").Select
では、だめですか?
ありがとうございます。
教えていただいた文ですと、エクセルの最終行まで範囲指定になり、
2行目以降のセルへの貼り付けができませんでした。
私がちゃんと、範囲指定後2行目以下へ貼り付けると書かなかったのが
いけませんでした。すみません。
ただ逆に最終行までを指定したい場合教えていただいた方法が
大変有効ですので使わせていただきます。
ありがとうございました。
No.1
- 回答日時:
マクロ記録時のキー操作が間違えています。
選択したセルから最終セルまで自動的に範囲を取得するなら、Ctrl+Shift+Endのキー操作です。
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
表内のデータ範囲を自動取得するなら(A1セルを選択して)Ctrl+Shift+*の操作を行います。
Range("a1").CurrentRegion.Select
早々のご回答ありがとうございます。
示していただいた方法ですと、C列までしか範囲指定できないようですが、
ただ、全てのセルにデータが入っている場合には大変有効ですので
そのような場合に使わせていただこうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) 条件付き書式 ある範囲で色がついているセルと同行の別のセルに色を付けたい 4 2022/04/20 07:04
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
EXCELで最後の行を固定
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
エクセルVBA:データ端に画...
-
エクセルのマクロ
-
[EXCEL]ボタン押す→時刻が表に...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル2016で時間を入力して...
-
A1に入力された文字列と同じ文...
-
エクセルVBA 最終行を選んで並...
-
excel セルの結合を条件付で自...
-
エクセルのマクロで意図しない...
-
エクセルマクロ オートSUM(合...
-
Excel2007で、指定範囲の行高さ...
-
excel 小さすぎて見えないセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
エクセル マクロ オートフィ...
-
Excel グラフのプロットからデ...
-
Excelのフィルター後の一番上の...
-
結合されたセルをプルダウンの...
-
EXCELで最後の行を固定
-
excelのデータで色つき行の抽出...
-
アクティブになっている行をマ...
-
連続データが入った行の一番右...
-
Excel ウインドウ枠の固定をす...
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
おすすめ情報