• ベストアンサー

値の比較について

Excelにおいて 1  1 3  3  4  4 7  5 6  6 3  2 というように数値が並んでおり、同じ行の値を比較して、値がそれぞれ異なった場合にのみその値の順番を返す、というようなプログラムをexcelのVBを利用して書きたいと思っています。 上の例でいくと、4行目と6行目の値が異なっているので、4、6というような回答をしてくれるプログラムを組みたいです。 プログラムに関しては全くの素人ですので、どうか回答よろしくお願いいたします。

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

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

数値がA列とB列にあるものとして、 Sub test() Dim r As Long For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(r, 1).Value <> Cells(r, 2).Value Then MsgBox "値が異なるのは" & r & "行目です" '(a) Cells(Rows.Count, 3).End(xlUp).Offset(1).Value = r '(b) End If Next r MsgBox "終了" End Sub 見つかるごとにメッセージが要らなければ(a)の行を削除してください。 C列への書き込みが要らなければ(b)の行を削除してください。 どのように「返す」のかが解らなかったので、適当に予想して作りましたが、これ以外の返し方を望むのであれば、詳細を書いてください。

paeriaerea
質問者

お礼

ご丁寧に本当にありがとうございます。 動作の仕方は私のまさに望んでいたものです。 値の返し方についてですが、値のことなる行の番号を隣の列辺りに 4 6 というように次々と羅列していくものが理想です。 手取り足取り本当にすみません…

その他の回答 (1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

Cells(Rows.Count, 3).End(xlUp).Offset(1).Value = r '(b) を Cells(r, 3).Value = r に変更してください。

関連するQ&A