• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBAで、選択範囲内で同じ値が入力されたセルを調べる)

ExcelVBAで選択範囲内の同じ値のセルを調べる方法

このQ&Aのポイント
  • ExcelVBAで選択範囲内(縦一列)で同じ値が入力されたセルを調べるプログラムを作成しました。セルに同じ値が入力されている場合、それらのセルの背景色を黄色に変えます。
  • しかし、結合セルが選択範囲内に存在する場合、プログラムがエラーになってしまいます。結合セルがあっても正常に動作するように解決方法を探しています。
  • どなたか、結合セルが含まれる選択範囲内で同じ値のセルを正しく調べる方法を教えていただけませんか?

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

こんな感じ? Sub 選択範囲内で同じ値が入力されたセルを調べる_縦() Dim i As Long Dim j As Long If TypeName(Selection) <> "Range" Then Exit Sub For i = 1 To Selection.Count - 1 For j = Selection.Count To i + 1 Step -1 '同じ値が入力されているセルを黄色にする If Selection(i).Value = "" Then Exit For If Selection(i).Value = Selection(j).Value Then Selection(i).Interior.ColorIndex = 6 Selection(j).Interior.ColorIndex = 6 End If Next j Next i End Sub

marimoooon
質問者

お礼

hige_082さん、ありがとうございます。 すごい、こんな簡潔なコードで可能だったんですね! selection(i)という使い方、iやjの設定方法など、とても勉強になりました。ありがとうございましたm(._.)m

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

よくわかんないけど、対象が選択範囲で、その中にActiveCellと同じ値があれば黄色にするということでいいのでしょうか? こんな感じ? Sub test() Dim rng As Range, c As Range, v If TypeName(Selection) <> "Range" Then Exit Sub Set rng = Selection v = ActiveCell.Value For Each c In rng  If c.Interior.ColorIndex = 6 Then c.Interior.ColorIndex = xlNone  If c.Value = v Then c.Interior.ColorIndex = 6 Next c End Sub

marimoooon
質問者

お礼

fujillinさん、ありがとうございます。 例えばA1からA100までデータが入力されていて、それらの値はすべて違うものであるはず → 同じ値があれば入力ミスなので、それをチェックしたい。というのが目的です。 A1からA100までを選択している状態でプログラムを実行し、A17とA69の値が同じであれば、両方のセルの色を黄色にしたいのです。 説明が下手で申し訳ありません。宜しくお願い致します。

関連するQ&A