「excel vba 行数と列数で範囲を選択する」
という検索キーワードに気づきました。
いろいろな書き方が考えられますが、おすすめしたいのはRangeオブジェクトのResizeプロパティです。
Range.Resizeプロパティの動きを確認するサンプルマクロ
簡単なSubプロシージャで、RangeオブジェクトのResizeプロパティの動きを確認してください。ActiveCell.Resize(2, 5).Select
End Sub
上記のSubプロシージャを実行すると、アクティブセルを起点にして、2行・5列のセル範囲が選択されます。
「ActiveCell.Resize(2, 5)」で、アクティブセルを起点に2行・5列のセル範囲を表すRangeオブジェクトを取得して、RangeオブジェクトのSelectメソッドで選択を行っています。
Range.Resizeプロパティの引数
Range.Resizeプロパティの引数は2つで、第1引数が行数、第2引数が列数です。
上記のオブジェクト式「ActiveCell.Resize(2, 5)」の数値を変更してから実行すると、引数の意味を確認できるでしょう。
.Resizeの前はRangeオブジェクトを取得する式
ここでご紹介しているResizeは、Rangeオブジェクトに用意されているプロパティで、上位のオブジェクト式を省略できるグローバルメンバーではありませんから、「.Resize」の前は、必ずRangeオブジェクトを取得する式である必要があります。
例えば、
Range("G7").Resize(2, 5).Select
や、
Cells(7, 7).Resize(2, 5).Select
を実行すると、G7セルを起点に、2行・5列ですから、G7:K8セルが選択されます。
- Newer:レベルが高すぎた
- Older:変数の中身を確認する自動データヒント
Home » Excel VBA Rangeオブジェクト » 行数と列数でセル範囲を取得-Resizeプロパティ