- ベストアンサー
エクセルマクロで、書式が違っても文字列を評価する方法
文字列書式のセルと、標準書式のセルの数字文字列を比較したいのですが、うまくいきません。 書式が違うと、range.textも違う値になってしまうようです。 結局、現状では一度文字列変数の中に一度いれてから処理していますが、もっと他によい方法はないでしょうか? ------------------------------- If range1 = range2 Then ・・・・・ End If ------------------------------- Dim temp1 As String Dim temp2 As String If temp1 = temp2 Then ・・・・・・ end If ------------------------------
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
If CStr(Cells(1,1)) = CStr(Cells(1,2)) Then とか…
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
Wendy02です。 追伸: 数値だけの比較をするなら、CDbl で比較すればよいと思います。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >文字列書式のセルと、標準書式のセルの数字文字列 「標準書式のセルの数字文字列」 というのは、良く分らないのです。具体的に出してください。 標準書式に、数字文字列というのはあるのでしょうか? プレフィックスキャラクタのついた、「'123」ということでしょうか? >現状では一度文字列変数の中に一度いれてから処理していますが、もっと他によい方法はないでしょうか? それが一般的だと思いますね。 書式= @ 標準書式 結果 123,123 '123,123 同じです 123123 123,123 違います 123,123 123,123 違います 何を比較し、どういう結果を求めるのか良く分りません。 String型なら、片方をTextにし、もう片方を、Cstr関数で、文字型に変換すればよいかもしれませんが、分らないです。 '------------------------------------- Sub Test1() If ActiveCell.Value = ActiveCell.Offset(, 1).Value Then MsgBox "同じです" Else MsgBox "違います" End If End Sub
お礼
すみませ~ん。言葉が足りなかったようです。 意図としては、セルにどのような文字種(漢字、ひらがな、数字、アルファベット)が、どんな書式(標準、文字列、数値)で入っていても、エクセルで「見た目上表示されている文字列」として評価して、比較したかったというのがあります。 ありがとうございました!
お礼
CStrで出来ました。 ありがとうございました!