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
※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