構文
Range.Previous
Range.Next
Previous・・・・指定したセルの左隣のセルを参照します。
Next・・・・・・指定したセルの右隣のセルを参照します。
Next・・・・・・指定したセルの右隣のセルを参照します。
隣のセルを参照・取得するPrevious/Nextのサンプルコード
Public Sub sample()
Dim rng As Range
Set rng = Range("B1")
Range("A1") = 1
Range("B1") = 2
Range("C1") = 3
'■指定セル(B1)の左側(Previous)右側(Next)の値(Value)を取得
Debug.Print rng.Previous.Value '1(セルA1の値を取得)
Debug.Print rng.Next.Value '3(セルC1の値を取得)
'■指定セル(B1)の左側(Previous)右側(Next)の背景色(Interior.Color)を取得
Debug.Print rng.Previous.Interior.Color '16777215 塗りつぶしなし
Debug.Print rng.Next.Interior.Color '16777215 塗りつぶしなし
'■左隣のセルの書式をコピーする(可変なフォーマット作成)
rng.Previous.Copy
rng.PasteSpecial (xlPasteFormats)
'■A1の左隣などエラーが発生するケース
Debug.Print Range("A1").Previous.Address '実行時エラー1004 アプリケーションの定義またはオブジェクト定義のエラーです。
End Sub
注意点
- 今回はシート名などは明示していませんのでActiveSheetから取得します。
- 別のシートや別のブックのセル範囲を取得する場合は、Worksheetsを事前に指定しましょう。
ワークシート名を変数にSetし、短い名前で利用する【マクロ初級者必読】 - 一つ上のセルや下のセル取得する場合はOffsetプロパティを使用します。
- 結合セルがあっても気にせず隣のセルを取得します。 (例) B1:D5まで結合セルの場合、Range(“C3”).Previousを指定するとセルB3を参照します。
関連記事
ヘッダー行(見出し)を除いて表範囲を取得する【CurrentRegion応用】【ExcelVBA】
ワークシートの見出し色を変更する【Tabプロパティ】【ExcelVBA】



コメント