Text プロパティは見た目どおり?
"長〜〜〜〜〜い文字列"シリーズ(其の壱)
(Excel2007では 8222文字以上、Excel2003以下では、1025文字以上)
セルの値を取得するプロパティには、
Value プロパティ
Text プロパティ
とそれぞれ違うものがありますね。
どう違うのかというと、
Value プロパティ … セルの値そのもの
Text プロパティ … 表示されている見た目のまんま
と思っていれば、ほぼ大丈夫です。
「ほぼ」ってどーゆーこと?
それは、"長〜〜〜〜〜い文字列"の場合にちょん切れちゃうからです。
百聞は一見にしかず ということで、実験です。
まず、
Sub Macro1() Dim rngA As Range Set rngA = ActiveSheet.Range("A1") rngA.ColumnWidth = 100 rngA.WrapText = True rngA.Value = String(1023, "A") & "BC" End Sub
を実行します。
これで、セルA1に、Aがだっ〜と連なって最後のBC と入っているのが見えるはずです。
ここで、Text プロパティで見えているものを引っこ抜いて、最後の一文字を MsgBox に出してみましょう。
と思って、
Sub Macro2() MsgBox Right$(ActiveSheet.Range("A1").Text, 1) End Sub
というコードが書いて、実行すると、、、C じゃなくて、B が表示されます。
これは、Text プロパティは 1024文字でちょん切るからなんです。
MsgBox の代わりに
Debug.Print ActiveSheet.Range("A1").Text
とすると、一発で分かります。
なお、この実験用コードは、Excel97 〜 2003 用です。
Excel2007 でも同様のことを試せると思うのですが、セルにあまりにもたくさんの文字を入れなければならないので、ちょっとばかりメンドクサイ工夫が必要のようです。
※.Excel World の 2007年5月1日 22:40 の日記をコピーしています。
http://excel.sns.fc2.com/excel/