エクセルVBAのResizeプロパティは今あるセル範囲を再設定することが出来るプロパティです。
Offsetプロパティと合わせると、よりユーティリティなプロパティになります。
こんにちは、じゅんぱ店長(@junpa33)です。
今回は、いとも容易くセルの指定範囲を変更させることが出来るプロパティについてです。
RangeオブジェクトのResizeプロパティについて説明します。
- セルの範囲選択
- Range VS Cells !VBAで使えるのはどっち
- セルの範囲選択と設定は14のツールで対応する
- Rowsプロパティの働きと関連のメソッド
- Columnsプロパティでセルの列を指定する
- EntireRowとRowプロパティの違い
- EntireColumnとColumnの使い方
- Offsetプロパティは指定範囲を移動させる
- Resizeプロパティでセル範囲をサイズ変更
- CurrentRegionは連続データをまとめて掴む
- UnionとRangeの一括選択の働きを比較
- SpecialCellsメソッドはセル検索し選択する
- UsedRangeプロパティの使い方のコツ
- Endプロパティで上下左右の最終セルを取得
- データ入力済セルの最終行番号を取得する
コンテンツ
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の独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。