Excel VBAで指定した範囲のサイズを変更する:Resize

Resizeプロパティを使うと、Rangeで指定したサイズの範囲を変更することができます。その使い方と使用例をご紹介します。

Excelでのセル範囲選択

Excelでの作業で表の編集をする場合、

表の任意の範囲から、見出しの範囲を除いて選択したところに色を付けたい。
特定の範囲から任意の行数・列数を選択範囲から除きたい。

という場合、手作業ではうまくいかなかったり、時間がかかったりと大変な場合があります。Resizeプロパティを使えば、Excel-VBAでは簡単に行なうことが可能です。

実際の使い方

Resizeプロパティの文法は、以下の通りです。

Rangeオブジェクト. Resize(行数, 列数)

Rangeオブジェクトに関しては、後述の注意点をご覧ください。たとえば、最初に選択した範囲から一番上の行と一番下の行を除いた範囲を選択するマクロは以下の通りです。

マクロ例:

上のマクロの中の、

という記述の意味は以下の通りです。

・celRange. Offset(1)で選択範囲を1行下からにする。(一番上の行を範囲外に)
・celRange. Offset(1)で範囲が1行ずつ下になったので、合計2行選択から外す。(一番下の行を範囲外に)

なお、このマクロを実行してもシート上のカーソルの選択範囲は変わりません。

マクロ作成・実行時の注意点

Rangeオブジェクトとは選択するセルの番地のことで、Range(セル番地を示す文字列)で示します。基本的には固定範囲ですが、範囲を可変にしたい場合はCellsオブジェクトと合わせて下記のように使う事も可能です。

上のマクロ例を書き直すと、

最後に、Setで変数にオブジェクトを定義した場合は、必ず

でオブジェクトを解放することを忘れてはいけません。(詳細はSetステートメントをご参照ください。)


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

UX MILKのディレクター募集