
Excel VBA Resizeプロパティは、既存のセル範囲のサイズを変更するために使用します。指定した範囲の行数や列数を動的に変更できます。具体的な使い方や、注意点やサンプルコードを紹介します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA Resizeを利用
以下のようなシーンで利用されます。
・動的にセル範囲を変更する必要がある。
・データの追加や削除に応じて範囲を調整する。
・繰り返し処理で範囲を変更しながらセルにデータを入力する。
Excel VBA Resizeを利用|使い方とポイント
Range.Resize([RowSize], [ColumnSize])
・RowSize 新しい行数。省略可能で、指定しない場合は元の行数を使用します。
・ColumnSize 新しい列数。省略可能で、指定しない場合は元の列数を使用します。
・Resizeプロパティは、元の範囲のセルを基準にサイズを変更します。
・元の範囲の位置は変更されず、行数や列数だけが変更されます。
Excel VBA Resizeのサンプルコード
Option Explicit
Sub ResizeExample()
Dim rng As Range
Set rng = Range("A1:B2") ' 初期範囲はA1:B2
' 範囲を3行4列に変更
Set rng = rng.Resize(3, 4)
' 新しい範囲に値を設定
rng.Value = "Resized"
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合った学習スタート地点がわかる無料の選択問題集をご用意しました。(VBAエキスパートベーシック資格試験から抜粋した問題です)
555点以上ならベーシック合格レベル、345〜550点はベーシック理解途中、340点以下は基礎理解不足 (※ご安心ください。この問題をされた人の情報は一切残りません。実力のチェックができる問題集で、クリックすぐにスタートではありません。解説内容の下に問題があります)
動的に範囲を調整する例
この例では、開始セル"A1"を基準に5行3列の範囲が動的に設定され、その範囲に「Dynamic」という値が設定されます。
Option Explicit
Sub DynamicResizeExample()
Dim startCell As Range
Dim numberOfRows As Long
Dim numberOfColumns As Long
Set startCell = Range("A1") ' 開始セル
numberOfRows = 5 ' 動的に設定された行数
numberOfColumns = 3 ' 動的に設定された列数
' 開始セルを基準に範囲を調整
startCell.Resize(numberOfRows, numberOfColumns).Value = "Dynamic"
End Sub
これらの例を使って、Resizeプロパティの使い方で、さまざまなシーンでセル範囲を動的に変更できるようになります。
生成AIで業務改善を始めたい方へ
Excelの業務改善に興味がある方は、生成AIを活用することで、さらに効率化できる可能性があります。
目的に合わせて、こちらの記事をご覧ください。

