同じになると思ったのに…

ワークシートが1枚存在するブックに対して、セル A1 に文字列を入力して、↓のマクロを書いて実行したところ、MsgBox に False と出ました。(セルの書式設定は、標準 のままです。)

Sub Macro1()
  Dim X1 As String
  Dim X2 As String

  X1 = ActiveSheet.Range("A1").Value
  X2 = ActiveSheet.Range("A1").Text
  MsgBox X1 = X2
End Sub

さて、セル A1 にどんな文字列を入力したのでしょう?("数値"ではなく、"文字列"です。)
 
 
 
 
 
 
 
 
 
 
 
 
答えは、、、
 
「長〜〜〜〜〜い文字列」です。
 
どのくらい長いかというと、Excel2007 では 8222 文字以上、Excel2003 以下では、1025 文字以上です。(下の方のバージョンは面倒なので調べてません。数式の限界と一致するはずなので、その気になればすぐ調べられますが。)
これだけ長さがあると、Text プロパティで取得したときにちょん切れます。それで同じではなくなってしまうのです。
 
※.Excel World の 2007年4月30日 13:30 の日記をコピーしています。
http://excel.sns.fc2.com/excel/