Resizeプロパティ
Rangeオブジェクトで指定されている範囲を拡張します。
行方向サイズ・・・新しい範囲の行数を指定する。省略すると最初に指定した範囲と同じ。指定する場合は1以上の整数で指定。
列方向サイズ・・・ 新しい範囲の列 数を指定する。省略すると最初に指定した範囲と同じ。指定する場合は1以上の整数で指定。
使い方
基本形はこちらです。
Sub sample()
'シートの指定
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Sheets("Resize")
'最初のセル範囲
Dim 最初のセル範囲 As Range
Set 最初のセル範囲 = sheet.Range("B2")
最初のセル範囲.Select
'範囲の拡張
最初のセル範囲.Resize(3, 4).Select
End Sub
変数「最初のセル範囲」が、Resize前の範囲です。
ここでは分かりやすいように、Selectしています。
最初のセル範囲に対してResize(3, 4)を行っています。
動画で動きを確認しましょう!
最初に選択した範囲は、B2セルなので1セルだけでしたが、Resizeした後のSelectでは、範囲が3行・4列に拡張されたことが分かります。
ちなみに、引数を省略すると、最初に指定した範囲と同じ大きさになります。
これも試してみましょう。
Sub sample()
'シートの指定
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Sheets("Resize")
'最初のセル範囲
Dim 最初のセル範囲 As Range
Set 最初のセル範囲 = sheet.Range("B2:D6")
最初のセル範囲.Select
'範囲の拡張
最初のセル範囲.Resize(, 4).Select
End Sub
最初のセル範囲を、「B2:D6」としました。
5行3列の範囲です。
これをResizeする際に、行方向の引数を省略して「.Resize(,4)」としました。
どのようになるか確認しましょう。
行方向の引数は指定していないので、Resizeした後の行数は最初のセル範囲のまま5行ですね。
列方向だけ4に拡張されました。
これは列方向の引数を省略した場合も同じような動きになります。
まとめ
こんな一覧があったときに、Find関数かなんかで、一致する名前のセルを取得して、
そのセルのRangeオブジェクト.Resize(1,3)みたいに拡張すると見つかったデータの全ての項目が取得出来ますね(^o^)
さっきのサンプルコードを少しいじります。
最初のセル範囲のところをFindに変えてます。
Sub sample()
'シートの指定
Dim sheet As Worksheet
Set sheet = ThisWorkbook.Sheets("Resize")
'最初のセル範囲
Dim 最初のセル範囲 As Range
Set 最初のセル範囲 = sheet.Range("A:A").Find(What:="白鳥 美和子")
最初のセル範囲.Select
'範囲の拡張
最初のセル範囲.Resize(1, 3).Select
End Sub
実行してみましょう。
「白鳥 美和子」のデータが取得出来ることがわかります。
実務の場合は、Selectってことは無いと思いますが、コピーして別のところに貼り付けるなど適宜処理は変更してくださいね(^o^)
コメント