[[20071028153440]] 『複数行の完全一致について』(子牛) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数行の完全一致について』(子牛)

    A          B            C  
 aaa/2cesv   aaa/2cdsv     "マル"
   0                   "バツ"    
 ssw234      ssw234        "バツ"

 のように、A列とB列の各セルを10行に渡ってその結果を
 Cセルに出力したいのです。
 自分なりに

    For Y = 1 To 10
    If Cells(Y, 1).Value = Cells(Y, 2) Then
        Cells(Y, 3).Value = "マル"
    Else
        Cells(Y, 3).Value = "バツ"
        Cells(Y, 3).Font.Color = RGB(255, 0, 0) 'フォントの色を赤にする

 というコードを書いたのですが、これだと0=nullと認識されてしまうようです。
 AとBのセルが完全に一致した時のみ、マルと出したいのです。

 またバツのときだけ赤字にしたかったのですが、マルの時も赤字になってしまいます。 

 以上すいませんがよろしくお願いします。


 1) WorksheetFunction の Exact 関数 または vb StrComp関数で検査してみては?
 2) 最初にC1:C10のセル色を無色にしておく必要があるのでは?

 Range("c1:c10").Interior.ColorIndex = xlNone

 こんな感じでもよいのでは?

 Sub test()
 With Range("c1:c10")
     .Interior.ColorIndex = xlNone
     .Formula = "if(exact(a1,b1),"○",false)"
     On Error Resume Next
     With .SpecialCells(-4123,4)
         .Value = "バツ"
         .Interior.Color = vbRed
     End With
 End With
 End Sub
 (seiya)

 seiyaさん ありがとうございます。

 ただ、
 .Formula = "if(exact(a1,b1),"○",false)"
 のところで構文エラーが出てしまいます。。。

 あと
 With .SpecialCells(-4123,4)
 のところは何をやっているのでしょうか?


 おっと
 1) .Formula = "=if(exact(a1,b1),""○"",false)"
    でした

 2) SpecialCells(xlCellTypeFormulas, xlLogical)
    です。
    数式で、結果が True/False のセルを拾います。
 (seiya)

おおおーー できました。
seiyaさんありがとうございます。

大変勉強になりました!


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.