ExcelマクロVBA入門
第82回.RangeのResizeプロパティ

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2019-07-15

第82回.RangeのResizeプロパティ


Resizeプロパティは、指定されたセル範囲(Rangeオブジェクト)のサイズを変更します、
そして、サイズが変更されたセル範囲(Rangeオブジェクト)を返します。
サイズ変更は、縦方向の行数、横方向の列数の両方またはどちらか一方を指定できます。
Resizeは、マクロVBAでは習得必須のRangeのプロパティになります。


Resizeプロパティの構文

Range.Resize(RowSize, ColumnSize)



RowSize

新しい範囲の行数を指定します。
この引数を省略すると、新しい行数は変更する前と同じ行数になります。
指定する場合は、1以上の整数を指定してください。

ColumnSize

新しい範囲の列数を指定します。
この引数を省略すると、新しい列数は変更する前と同じ列数になります。
指定する場合は、1以上の整数を指定してください。


名前付き引数ですが、2つだけなので通常は名前付きを使用するまでもありません。
戻り値
サイズ変更後のRangeオブジェクトになります。

Resizeの使用例

Range("A1").Resize(3, 3).Select
A1セルを3行3列の範囲に変更し、A1:C3セル範囲にしています。

Range("A1:A3").Resize(, 3).Select
A1:A3セル範囲を、3列に変更し、A1:C3セル範囲にしています。

Range("A1:C1").Resize(3).Select
A1:C1セル範囲を、3行に変更し、A1:C3セル範囲にしています。

Resizeのネスト
Range("A1").Resize(3).Resize(, 3).Select
これと、
Range("A1").Resize(3, 3).Select
これの結果は同じになります。

セル範囲を指定する場合のResizeの便利な使い方
Dim i As Long, j As Long
i = 3
j = i + 10
Range(Cells(i, 1), Cells(i, j)).Select

これはResizeを使って以下のように書き直すことができます。



Dim i As Long, j As Long
i = 3
j = i + 10
Cells(i, 1).Resize(, j).Select

どちらも大きな違いはありませんが、Resizeを使うとVBAの記述が短くて済む場合が多くなります。


Resizeのまとめ

Resizeは、非常に重宝するプロパティです。
使い方は簡単なので、ぜひしっかりと習得してください。
以下のページも参考にしてください。
Offset、Resizeを使いこなそう
OffsetとResizeはエクセルVBAで非常に便利でぜひ使いこなしてもらいたい機能です。OffsetもResizeもRangeオブジェクトのプロパティでRangeオブジェクトを返します。以下ヘルプより Offsetプロパティ 指定された範囲からのオフセットの範囲を表すRangeオブジェクトを返します。

Rangeのプロパティは非常に沢山あります。
マクロVBA入門で重要なプロパティは一通り紹介していますが、他のプロパティにも目を通しておくと良いでしょう。
Rangeのプロパティ一覧 ・・・ 詳細解説ページへのリンクあり
エクセルの基本であるRangeオブジェクトのプロパティの一覧です。太字リンク付きは詳細解説ページまたは応用したVBAコードがあるページにリンクしています。Excel2010までのRangeオブジェクトのプロパティ一覧 Excel2016で追加されたRangeオブジェクトのプロパティ一覧 CommentThreaded 範囲の左上隅のセルに関連付けられてい…



同じテーマ「マクロVBA入門」の記事

第79回.ファイル操作Ⅰ(Dir)
第80回.ファイル操作Ⅰ(その他)
第81回.総合練習問題9
第82回.RangeのResizeプロパティ
第83回.RangeのOffsetプロパティ
第84回.RangeのAddressプロパティ
第85回.結合セルの扱い
第86回.総合練習問題10
第87回.WorksheetFunction(ワークシート関数を使う)
第88回.並べ替え(Sort)
第89回.オートフィルタ(AutoFilter)


新着記事NEW ・・・新着記事一覧を見る

VBAコードの全プロシージャー・プロパィ一覧を取得|VBAサンプル集(10月12日)
VBAでエラー行番号を取得できるErl関数|VBA技術解説(10月12日)
手動計算時の注意点と再計算方法|ExcelマクロVBA技術解説(10月9日)
引数の数を可変にできるパラメーター配列(ParamArray)|VBA入門(10月7日)
VBEの使い方:デバッグ|ExcelマクロVBA入門(10月6日)
VBAにおける配列やコレクションの起点について|VBA技術解説(10月5日)
VBEの使い方:オブジェクト ブラウザー|VBA入門(10月5日)
VBEの使い方:ウォッチ ウィンドウ|VBA入門(10月4日)
VBEの使い方:ローカル ウィンドウ|VBA入門(10月3日)
VBEの使い方:イミディエイト ウィンドウ|VBA入門(10月2日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • RangeのResizeプロパティ

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ