• ベストアンサー

エクセルでのマクロ

A列とB列のデータで重複するものをチェックするマクロを組むには どういう式を作成すればいいでしょうか? 具体的なマクロをよろしくお願い致します。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

ワークシート関数を使ってみました。 Sub test重複チェック()   Dim r As Range      For Each r In Range("A1:A5")     If WorksheetFunction.CountIf(Range("B1:B10"), r.Value) > 0 Then       MsgBox r.Value & " : " & "重複しています"     Else       MsgBox r.Value & " : " & "重複していません"     End If   Next End Sub

katana310
質問者

お礼

早速の回答ありがとうございます。 マクロ組んでみますね。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

(1)相手列において同じ値のセルがあるか関数で調べる   COUNTIF   MATCH   VKLOOKUP(FALSE型) のどれでも出来る。 (2)B列でーた1つでA列第1行から最終行まで、見つかるか繰り返しIF文で聞く (3)両者を同じキーでソートし、マッチングのロジックで比較 (4)A列の最後にB列データを継ぎ足し一本化して、ソートし、 前レコードと同じか聞く。 (5)B列データでA列データを対象にFindメソッドで見つけ、見つかれば重複。 他にもあるかもしれない。こういうロジックを考えることを学ばないとだめ。 >具体的なマクロをよろしくお願い致します。 回答者にコードを作ってくださいということで、丸投げに当たり、このコーナーの規約違反。

katana310
質問者

お礼

回答ありがとうございます。 なるほど、今後気をつけます。 ご指摘、ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

C列に重複数を出します。 Sub test() x = ActiveSheet.UsedRange.Cells(ActiveSheet.UsedRange.Count).Row With Range("C1:C" & x) .FormulaR1C1 = "=IF(COUNTIF(C[-2],RC[-1])>0,COUNTIF(C[-2],RC[-1]))" .Copy .PasteSpecial Paste:=xlValues Application.CutCopyMode = False .SpecialCells(xlCellTypeConstants, xlLogical).ClearContents End With End Sub

katana310
質問者

お礼

回答ありがとうございます。 非常に参考になりました。

関連するQ&A