エクセルVBAのResizeプロパティは今あるセル範囲を再設定することが出来るプロパティです。
Offsetプロパティと合わせると、よりユーティリティなプロパティになります。
こんにちは、じゅんぱ店長(@junpa33)です。
今回は、いとも容易くセルの指定範囲を変更させることが出来るプロパティについてです。
RangeオブジェクトのResizeプロパティについて説明します。














コンテンツ
Resizeプロパティの選択範囲カンタン設定方法

Resizeプロパティは、対象のセル範囲の行数と列数を変更した新しいセル範囲を、Rangeオブジェクトとして取得することが出来ます。
元のセル範囲を新しいセル範囲に変更する方法として、
「元のセル範囲の左上端のセル」を基準セルとして、新たに行数と列数をカウントします。
したがって、「元のセル範囲の左上端のセル」は基準位置として場所固定されますので、
動かすことが出来ません。
この場所固定された「元のセル範囲の左上端のセル」を移動させる方法としては、Offsetプロパティを併用する方法があります。
Resizeプロパティの構文
Resizeプロパティの記述方法としてはこのようになります。
- Rangeオブジェクト.Resize(RowSize, ColumnSize)
引数 | 説明 |
---|---|
RowSize | 新しく設定する範囲の行数を指定します。 引数を省略すると、新しくは行数を変更しないと判断されます。 |
ColumnSize | 新しく設定する範囲の列数を指定します。 引数を省略すると、新しくは列数を変更しないと判断されます。 |
基本的な使い方
Resizeプロパティの基本的な使い方としては、次のような簡単なコードでセルの選択範囲を変更させることが可能です。
セルC3を選択します。背景色を黄色にしておきます。
Sub Resizeサンプル1()
Range("C3").Select
Range("C3").Interior.Color = RGB(255, 255, 0)
End Sub

Sub Resizeサンプル2()
Range("C3").Select
Selection.Resize(3, 5).Select
End Sub

基準セルC3からの行数と列数をカウントして範囲が設定されました。
このResizeプロパティだけでは、基準セルを動かすことは出来ません。
そこで、Offsetプロパティを利用して基準セルそのものを移動させることにします。これによって、シート上のどこにでもセルの選択範囲を動かせるようになります。
Sub Resizeサンプル3()
Range("C3").Select
Selection.Offset(4, -1).Resize(3, 5).Select
End Sub

基準セルの位置が、OffsetプロパティによってセルC3からセルB7に移動しました。
ちなみに、次のコードでも同じ結果が得られます。(ResizeとOffsetの記述位置を逆にしました)
Sub Resizeサンプル4()
Range("C3").Select
Selection.Resize(3, 5).Offset(4, -1).Select
End Sub
Resizeプロパティ カンタン実用例

雑誌の発売日リストから、ピッキングしたい雑誌を雑誌コードを使って、その関係するデータを抜き取るVBAコードです。
最もシンプルなタイプのコードですが、発売日リストの行数ボリュームが可変で有ったり、雑誌コードの抽出方法を関数やメソッドを使った方法に変更したりとか、データボリューム次第でVBAコード組み立てを変更する必要はあると思います。
雑誌コードからそのデータ行を抽出し表示します。

Sub Resizeサンプル5()
Dim i As Long
For i = 1 To 10
If Cells(i, 5) = Cells(17, 4).Value Then
Cells(i, 5).Offset(, -3).Resize(, 9).Select
Range("B19:J19") = Selection.Value
End If
Next i
End Sub

雑誌コードのデータ列からOffsetプロパティで左へ3列ずらし、データ行の全9列をResizeで範囲選択しています。
Resizeプロパティ まとめ

Resizeプロパティは簡単に利用することが出来ますので、ぜひ使っていきましょう。
Offsetプロパティとセットで覚えておきましょう。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできます。
今回の記事はここまでです。 最後までご覧いただき有難うございました。



















