- ベストアンサー
値の比較について
Excelにおいて 1 1 3 3 4 4 7 5 6 6 3 2 というように数値が並んでおり、同じ行の値を比較して、値がそれぞれ異なった場合にのみその値の順番を返す、というようなプログラムをexcelのVBを利用して書きたいと思っています。 上の例でいくと、4行目と6行目の値が異なっているので、4、6というような回答をしてくれるプログラムを組みたいです。 プログラムに関しては全くの素人ですので、どうか回答よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
数値が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)の行を削除してください。 どのように「返す」のかが解らなかったので、適当に予想して作りましたが、これ以外の返し方を望むのであれば、詳細を書いてください。
その他の回答 (1)
- nattocurry
- ベストアンサー率31% (587/1853)
Cells(Rows.Count, 3).End(xlUp).Offset(1).Value = r '(b) を Cells(r, 3).Value = r に変更してください。
お礼
ご丁寧に本当にありがとうございます。 動作の仕方は私のまさに望んでいたものです。 値の返し方についてですが、値のことなる行の番号を隣の列辺りに 4 6 というように次々と羅列していくものが理想です。 手取り足取り本当にすみません…