上下左右1セルずつ選択範囲を広げたい。
1セル選択→9セル選択、4セル選択→16(18)セル選択みたいな感じのことをしたい。
起点が1列目1行目の場合にOffsetでエラーが起きる。
これを無視すると簡単。
Sub 選択範囲を広げる1() On Error Resume Next Dim targetRange As Range With Selection Set targetRange = .Offset(-1, -1).Resize(.Rows.Count + 2, .Columns.Count + 2) End With targetRange.Select End Sub
上記Offset時のエラー回避版。
Sub 選択範囲を広げる2() Dim targetRange As Range Set targetRange = Selection '.Areas(1) Dim iRowAdd As Integer: iRowAdd = 1 Dim iColumnAdd As Integer: iColumnAdd = 1 If targetRange(1).Row > 1 Then Set targetRange = targetRange.Offset(-1, 0) iRowAdd = 2 End If If targetRange(1).Column > 1 Then Set targetRange = targetRange.Offset(0, -1) iColumnAdd = 2 End If With targetRange Set targetRange = .Resize(.Rows.Count + iRowAdd, .Columns.Count + iColumnAdd) End With targetRange.Select End Sub
以上。