ExcelVBA学習5日目(セルを操作する)

▼上下左右のセルを操作(Offsetプロパティ)

VBAでは指定したセル範囲やセル範囲から〇行、〇列ずれたセルを参照することができる。オブジェクトにはRangeを指定する

使用例)

Sub 隣接セルの参照()

  With Range("B3")

    .Offset(, -1).Value = "左"

    .Offset(, 1).Value = "右"

    .Offset(-1).Value = "上"

    .Offset(1).Value = "下"

    .Offset(3, -1).Value = "3つ下1つ左"

  End With

  Range("D2:D4").Offset(1,2).Value ="1つ下、2つ右"

  Range("A2").CurrentRegion.Offset(1,2) = "A2セルを含むアクティブセル領域を基準に、1行下2列右"

End Sub

 

▼表内のセルの参照(CurrentRegionプロパティ)

Excelで、アクティブセルを選択するには、「Ctrl+Shift+*」を押す。

・使用例)

Sub A6セルから下のデータを参照()

 Range("B6", Range("B6").End(xlDown).End(xlToRight)).Select
End Sub

f:id:SUNO:20200817115637p:plain

※Endプロパティを利用すると、データが入っている領域の終端セルを選択できる。

 

▼数式や空白セルの参照(SpecialCellsメソッド)

・オブジェクト.SpecialCells(Type,[Value])

・空白セルや数式が入ったセルなど、特定の種類のセルを選択する。

・Rangeオブジェクトを指定

・引数Typeに、「xlCellTypeConstants(定数が含まれるセル)」または「xlCellTypeFormulas(数式が含まれるセル)」が指定されているときにValueが指定できる。

使用例)

Option Explicit

Sub 空白セルの選択()
 'エラーが発生したときは「エラーメッセージ」の箇所に移動
 On Error GoTo エラーメッセージ
 '範囲内の空白セルを選択し、マクロを終了
 Range("D4:F7").SpecialCells(xlCellTypeBlanks).Select
 Exit Sub

エラーメッセージ: 'エラー場発生したときエラー内容を表示
 MsgBox Err.Description
End Sub