構文
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】
コメント