エクセルVBAで質問です

画像

Visual Basic | Excel52閲覧

ベストアンサー

0
画像

ThanksImg質問者からのお礼コメント

ありがとうございます。無事できました

お礼日時:10/24 18:07

その他の回答(1件)

0

マクロの例です。 初期値と同じ場合はカウントし、初期値と違う値のセルが見つかったらカウントが3以上かを判定します。 3以上であればセル位置を取得し、そうでない場合はカウントをリセットして続けます。 最終値については最終行から逆に判定していきます。 条件に該当するセルが見つかったら、そのセルを選択します。 Sub sample() R_MAX = Range("A1").CurrentRegion.Rows.Count - 1 初期値 = Range("C2") 最終値 = Range("C2").Offset(R_MAX - 1) Set TARGET = Nothing '初期値 K = 0 For I = 1 To R_MAX If Range("C2").Offset(I - 1) = 初期値 Then K = K + 1 Else If K >= 3 Then Set TARGET = Range("C2").Offset(I - 2) Exit For Else K = 0 End If End If Next '最終値 K = 0 For I = R_MAX To 1 Step -1 If Range("C2").Offset(I - 1) = 最終値 Then K = K + 1 Else If K >= 3 Then If TARGET Is Nothing Then Set TARGET = Range("C2").Offset(I) Else Set TARGET = Union(TARGET, Range("C2").Offset(I)) End If Exit For Else K = 0 End If End If Next '該当するセルを選択 If TARGET Is Nothing Then Range("A1").Select MsgBox "条件に該当するデータは見つかりませんでした。" Else TARGET.Select End If Set TARGET = Nothing End Sub