• ベストアンサー

エクセルマクロで、書式が違っても文字列を評価する方法

文字列書式のセルと、標準書式のセルの数字文字列を比較したいのですが、うまくいきません。 書式が違うと、range.textも違う値になってしまうようです。 結局、現状では一度文字列変数の中に一度いれてから処理していますが、もっと他によい方法はないでしょうか? ------------------------------- If range1 = range2 Then  ・・・・・ End If ------------------------------- Dim temp1 As String Dim temp2 As String If temp1 = temp2 Then ・・・・・・ end If ------------------------------

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

  • ベストアンサー
  • fly_moon
  • ベストアンサー率20% (213/1046)
回答No.1

If CStr(Cells(1,1)) = CStr(Cells(1,2)) Then とか…

ohnotellme
質問者

お礼

CStrで出来ました。 ありがとうございました!

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

Wendy02です。 追伸: 数値だけの比較をするなら、CDbl で比較すればよいと思います。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >文字列書式のセルと、標準書式のセルの数字文字列 「標準書式のセルの数字文字列」 というのは、良く分らないのです。具体的に出してください。 標準書式に、数字文字列というのはあるのでしょうか? プレフィックスキャラクタのついた、「'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

ohnotellme
質問者

お礼

すみませ~ん。言葉が足りなかったようです。 意図としては、セルにどのような文字種(漢字、ひらがな、数字、アルファベット)が、どんな書式(標準、文字列、数値)で入っていても、エクセルで「見た目上表示されている文字列」として評価して、比較したかったというのがあります。 ありがとうございました!

関連するQ&A

専門家に質問してみよう