• ベストアンサー

エクセルVBAで連続しない数字を抽出できますか?

エクセル2002使用です。 VBAでセルに連番が入力された複数のセルに不連続となったセル番地をとりたいのですが・・・・        A B C D E F 1行目  1 2 3 4 8 12 2行目  4 5 7 8 9 5  左端から必ず右方向へ連続した番号が、入力されますが、途中でその連続性が途絶えます。 1行目の場合はE1セル、2行目はF2セルです。このE1セルやF2セルのセル番地を見つけ出せるようにしたいのですが・・・ 数字は1から始まるとは限りません。 IFステートメントで「不連続ならば・・・」とすればいいと思うのですが、「不連続ならば・・・」の部分で困っています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 条件を、「1つ前のセルの値+1と等しくなければ」とすればいいのでは? For i = 2 To 10   If Cells(1, i).Value <> Cells(1, i - 1).Value + 1 Then     MsgBox Cells(1, i).Address     Exit For   End If Next i という感じ ところで、2行目はC2では? (6が飛んでいる)

ken123
質問者

お礼

maruru01様早速のお返事ありがとうございます。 アドバイスいただいた方法でやります。 頭が固くなってしまってました。 ありがとうございました。今後ともよろしくお願いします。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

A,B列には適用できませんがC列以降なら C1で「書式」「条件付き書式」で 「数式が」「=AND((B1-A1<>C1-B1),AND(A1<>0,B1<>0,B1/A1<>C1/B1))」 で書式を設定 参考の例だとE1,C2,D2,F2の書式が変わります。 B1-A1<>C1-B1で同じ数値の加算・減算をチェック B1/A1<>C1/B1で同じ数値の乗算・除算をチェック 実際には等比加算等があるのでもっと増やす必要があるのですが とりあえず....

ken123
質問者

お礼

mshr1962 様早速のお返事ありがとうございます。 なるほど等比例ですか。。。 実は、使用する目的は、賃金台帳で、連続した数字は毎月の給与、不連続は賞与の分で、どうしてもその給与と賞与の間を見つけださねばならないのでした。 #1様と組合わせて使わせていただきます。 ホントにありがとうございました。 今後ともよろしくお願いします。

関連するQ&A