Resizeプロパティを使うと、「既に選択した範囲」から相対的な範囲を再選択することができます。口で説明するのが難しいので、図をご覧ください。
成果物
Resizeプロパティを使い、セルや範囲を起点に選択範囲を変更します。
Resizeプロパティの使い方
B2セルおよび周囲に何もない状態から始めます。
VBEを開き、Range(“B2”).Interior.ColorIndex = 15を記述して実行すると、
B2セルの色が変更されます。
では今度は、Range(“B2”).Resize(3,3).Interior.ColorIndex = 15に修正して実行してみると、
B2セルを起点にして下右それぞれみっつ分のセルがまとめて塗られます。
Offsetプロパティの範囲版のように使うことができるプロパティです。
Offsetプロパティの範囲版のように使うことができるプロパティです。
ただし、Offsetとちがいマイナスの値は使えません。右と下にのみ範囲の延長が可能です。
数字をひとつしか指定しなければ、
列にだけ干渉し、
Resize(, 3)のように、頭に,を付けて数字を指定すれば、
横方向にのみ干渉します。
範囲に対してResize
範囲に対してResizeを行うと、範囲のサイズからそのまま拡大していくことができます。
たとえばRange(“B2:D4”).Resize(1).Interior.ColorIndex = 15のようにすれば、
たとえばRange(“B2:D4”).Resize(1).Interior.ColorIndex = 15のようにすれば、
表の見出しや左端だけ干渉することができます。
Resize(5, 4)とすれば、
範囲からはみ出すことも可能です。
Offsetとの組み合わせ(左上以外からの範囲取得)
ついでに。先ほど言及したOffsetですが、Resizeと組み合わせて使うことで左上以外から範囲を取得することも可能です。
たとえばこの表Aの見出しおよび1列目はそのまま残し、〇だの×だのだけは削除したいとします。
たとえばこの表Aの見出しおよび1列目はそのまま残し、〇だの×だのだけは削除したいとします。
この場合、Offsetでまず「左上からひとつ下、ひとつ右」を取得した上で、そこからResizeで表Aの列数-1・行数-1を選択してクリアすれば、目的が達成できます。
コードとしてはRange(“表A”).Offset(1, 1).Resize(Range(“表A”).Rows.Count – 1, Range(“表A”).Columns.Count – 1).ClearContentsのようになります。
コードとしてはRange(“表A”).Offset(1, 1).Resize(Range(“表A”).Rows.Count – 1, Range(“表A”).Columns.Count – 1).ClearContentsのようになります。
実行結果です。
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
コメント