Excel VBAのチップスです。
指定したセルから「1行下のセル」とか「3列右のセル」など、基準のセルや範囲から離れたセルや範囲(オフセットといいます)を参照するときは、 Offsetプロパティを使用します。
構文(以下Helpより)
式.Offset(RowOffset, ColumnOffset)
式 Range オブジェクトを表す変数。
パラメーター
名前 必須/オプション データ型 説明 RowOffset オプション バリアント型 (Variant) オフセットする範囲の行数 (正、負、または 0) を指定します。正の値は下方向、負の値は上方向のオフセットを表します。既定値は 0 です。 ColumnOffset オプション バリアント型 (Variant) オフセットする範囲の列数 (正、負、または 0) を指定します。正の値は右方向、負の値は左方向のオフセットを表します。既定値は 0 です。
例1
セルB2は緑、B2を基準に下1行は赤、下2行・右2列は青に設定。
With Range("B2")
.Interior.ColorIndex = 4
.Offset(1, 0).Interior.ColorIndex = 3
.Offset(2, 2).Interior.ColorIndex = 8
End With
結果
例2(Helpの例より)
タイトル行を持つ表において、タイトル行以外の表の部分を選択します。ActiveCellを使用しているので、表の任意のセルをクリックしてアクティブにしてから実行しています。
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1,tbl.Columns.Count).Select
結果
上で使用してResizeプロパテについてです。
(以下Helpより)
指定された範囲のサイズを変更します。サイズが変更されたセル範囲 (Range オブジェクト) を返します。
構文
式.Resize(RowSize, ColumnSize)
式 Range オブジェクトを返すオブジェクト式を指定します。
パラメーター
名前 必須/オプション データ型 説明 RowSize オプション バリアント型 (Variant) 新しい範囲の行数を指定します。この引数を省略すると、新しい行数は変更する前と同じ行数になります。 ColumnSize オプション バリアント型 (Variant) 新しい範囲の列数を指定します。この引数を省略すると、新しい列数は変更する前と同じ列数になります。
例(Helpの例より)
選択された部分のサイズを 1 行と 1 列分大きくします。
表全体を選択してから実行しています。
numRows = Selection.Rows.Count
numColumns = Selection.Columns.Count
Selection.Resize(numRows + 1, numColumns + 1).Select
結果