
No.4ベストアンサー
- 回答日時:
重複チェック用に COUNTIF関数が用意されているので、これを利用した方法です。
C列にA列の、D列にB列のCOUNTIF関数の結果を出力します。
C列・D列はマクロ用のダミーなので、後で列を非表示にしておけばよいです。
C1には =COUNTIF($A$1:$B$100,A1)
D1には =COUNTIF($A$1:$B$100,B1)
と設定し、C2からC100まで ドラッグでコピーします。
D2からD100も同様です。
マクロはC列およびD列の値をみて、A列B列のセル背景色を変更します。
この方法の利点は重複箇所の数に応じて色を変えるのが簡単なことです。
Dim i As Integer
Dim j As Integer
For i = 1 To 100
For j = 3 To 4
'重複箇所が2箇所なら
If Cells(i, j) = 2 Then
Cells(i, j - 2).Interior.ColorIndex = 6 ' 黄色
Else
'重複箇所が3箇所以上なら
If Cells(i, j) >= 3 Then
Cells(i, j - 2).Interior.ColorIndex = 8 'シアン
Else
' 色をつけない
Cells(i, j - 2).Interior.ColorIndex = xlNone
End If
End If
Next j
Next i
ご参考まで
ご回答ありがとう御座います。
3箇所以上の場合まで考慮頂き、大変感謝申し上げます。
求めていた結果が得られましたが、もしかしたら列の追加がネックになる可能性もあるので十分検討したうえで利用させて頂きます。
No.5
- 回答日時:
これは条件付き書式によるべきだ。
・簡単性
・データ変更即時反応性(これが理由として大きい)
・エクセルの貴重な機能を生かす
からお勧め。
ーー
例データ -は空白を便宜的に表す
A列 B列
ーー
1114
1215
1313
2318
2423
115
915
A2:B10(現データより余分でもよい)を範囲指定
A2をアクチブにして
書式ー条件付き書式ー数式が
=COUNTIF($A$2:$B$10,A2)>1
書式を適当に設定
OK
ーーー
VBAの形式に刷る必要があれば、上記の操作でマクロの記録をとる方法もある。
ご回答ありがとう御座いました。
とても良い方法だったのですが、別の条件付き書式の指定があり、AND関数が上手く使えない状況でしたので、今回は別の方法でクリアさせて頂きました。
No.3
- 回答日時:
下記のコードはどうでしょうか。
For i = 1 To 100
If Cells(i, 1) = Cells(i, 2) Then
Rows(i).Interior.ColorIndex = 8
End If
Next
No.2
- 回答日時:
とりあえず、あまり深く考えていない仕様ではありますが、
ループして検索する場合のヒントを書いてみます。
いきなり答えだけ書いても身に付きませんので。
(もっと利口なやり方もあるかもしれませんが、それについては他の方に…(汗))
・For~Next等でループ
まず、ループして検索する際、検索元となるセルを示す値でループし、
そのループの中で更に、検索先(比較対象)のセルを示す値でループする
必要があります。
今回の場合、列が2つあるので、その対応も行わなければいけませんが、
それについてもやり方は複数あります。
思いついたのを少しだけ…
例1.検索元のループは1~200として、対象セルは、100以下の場合はA列内、
101以上の場合はB列内(ループカウンタから100を引いた値が対象行)とする
例2.Do~Loopループを使用し、ループごとにカウンタ変数に1を足していって
対象行を移動させていき、100を超えたら対象列を移動した上で対象行は1に戻す
(ループ終了条件は別途考えてください)
・検索条件等について
上で書いた検索元と検索先のループは、両方100×2ずつループさせても
動くには動きますが、無駄が多くなり、処理が遅くなります。
1つ目の検査が終了したら、2つ目を検査する際には、1つ目との比較は不要ですので、
その辺をうまく定義すれば処理速度が数段向上します。
また、当然ながら比較元と比較先が同じセルを指している場合は比較してはいけませんし
(上の最適化が間違いなければ、これは考える必要ありませんが)、既に色が
変わっているセルも比較する必要はありません。
このヒントを元に考えてみて、それでも分からなければ追記して頂ければ良いかと。
No.1
- 回答日時:
こんなのはどうでしょうか?
Sub sample()
Dim r As Integer
'1~100行
For r = 1 To 100
'A列のデータが""でなくA列とB列が同じければ
If (Cells(r, 1) <> "") And (Cells(r, 1) = Cells(r, 2)) Then
'背景赤
Cells(r, 1).Resize(1, 2).Interior.ColorIndex = 3
Else
'背景なし
Cells(r, 1).Resize(1, 2).Interior.ColorIndex = xlNone
End If
Next
End Sub
この回答への補足
早速のご回答ありがとう御座います。
私の質問が言葉足らずでしたので補足させて頂きます。
A列とB列の1行目から100行目までの全てのセルの中から重複データを探したいと考えております。
重複データは必ずしも隣のセルにあるとは限らず、A1とA5にある可能性もあれば、A2とB3にある場合もあります。
ややこしい話で大変申し訳御座いませんが、以上の状況を加味した上でアドバイスを頂ければ幸いに存じます。
宜しくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) エクセルの計算式について教えて下さい。 sheet1のA1セルの値をsheet2のB1セルに返し、尚 1 2022/05/25 11:32
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
質問58753 このコードでうまく...
-
【マクロ】並び替えの範囲が、...
-
以下のプログラムの実行結果は...
-
vbs ブック共有を解除
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
Excelのマクロについて教えてく...
-
VBAでユーザーフォームを指定回...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
[VB.net] ボタン(Flat)のEnable...
-
Excel 範囲指定スクショについ...
-
【マクロ】値を渡されたプロシ...
-
Excelのマクロについて教えてく...
-
Excel VBA 選択範囲の罫線色の...
-
エクセルのVBAコードと数式につ...
-
【マクロ】変数を使った、文字...
-
エクセルのVBAコードについて教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
testファイル内にある複数のpng...
-
改行文字「vbCrLf」とは
-
エクセルVBA 検索結果を隣のシ...
-
vb.net(vs2022)のtextboxのデザ...
-
エクセルのVBAコードと数式につ...
-
【マクロ】切取りの場合、形式...
-
【ExcelVBA】5万行以上のデー...
-
ExcelVBAでパワポを操作したい
-
(EXCEL超初心者)EXCELの関数(ま...
-
エクセルの改行について
-
Excelマクロで使うVBAコードを...
-
ワードの図形にマクロを登録で...
-
【マクロ】変数を使った、文字...
-
VBAでFOR NEXT分を Application...
-
VBAの質問(Msgboxについて)です
-
エクセルのVBAコードについて教...
-
Excelマクロで使うVBAコードを...
-
Excelのマクロについて教えてく...
-
VBAの「To」という語句について
-
【マクロ】値を渡されたプロシ...
おすすめ情報