.Value 、 .Text - Excelマクロ・VBA
昨日の続きです。
「式」と「戻り値」、「値」 - Excelマクロ・VBA
.Valueで値を設定したあと、参照元セルの値を変更すると? - Excelマクロ・VBA
.Value, .Formula, .FormulaR1C1 - Excelマクロ・VBA
今日も、.Valueの親戚をご紹介。
.Text です。
.Textは、「そのセルに、どう表示されているか」を教えてくれます。
得られる情報は、「そのセルに入っている値は何か」ではありません。
微妙に、ニュアンスが違います。
新しいシートを作り、セルA1に「2012/3/6」、セルA2に「2012年3月6日」と記入してみてください。
そして、マクロについて調べる前に、ちょっと確認。
以下の要領で、セルA1、セルA2について、セルの書式を調べてみましょう。
対象セルを右クリックして「セルの書式設定」を確認してみましょう。
すると、セル「A1」の書式は「日付」、セル「A2」の書式は「ユーザー定義型」となっていることが分かります。
このとき、セル「A1」、「A2」に入っている値は同じなのですが、表示されるときに、違う書式で表示されている、という状態です。
つまり、セルに入っている「値」は同じでも、表示されている「テキスト」は違う、という状態。
さてさて。
それでは、 .Value と .Text について比較するため、以下のマクロを実行してみます。
Sub hoge()
Debug.Print Range("A1").Value
Debug.Print Range("A2").Value
Debug.Print Range("A1").Text
Debug.Print Range("A2").Text
If Range("A1").Value = Range("A2").Value Then
Debug.Print ".Value は同じです"
Else
Debug.Print ".Value は違います"
End If
If Range("A1").Text = Range("A2").Text Then
Debug.Print ".text は同じです"
Else
Debug.Print ".text は違います"
End If
End Sub
結果、以下のように出力されたことでしょう。
もう、上記の結果を見れば、なにをか言わんや。
..って言うと、ちょっと乱暴すぎるかな。
もし、もっと詳しく解説してくれ!ということでしたら、どこが分からないか教えていただければまた解説しますね。
それでは、もうちょっと追加のテスト。
セルA3に、「=A2+1」と記入してみてください。すると、セルA2には、おそらく、「2012年3月7日」と表示されていると思います。
では、その状態で、今度は以下のマクロを実行。
Sub fuga()
Debug.Print Range("A3").Formula
Debug.Print Range("A3").FormulaR1C1
Debug.Print Range("A3").Value
Debug.Print Range("A3").Text
End Sub
結果は、以下のようになったはず。
.Formula, .FormulaR1C1 については、.Value, .Formula, .FormulaR1C1 - Excelマクロ・VBAを参照してください。
このシリーズは、次回にも続きます。
2024年11月20日 21:41
小川 慶一さん
2024年11月20日 21:28
AIユーザさん
2024年11月14日 17:04
小川 慶一さん
2024年11月13日 18:12
AIユーザさん
2024年11月13日 18:11
田中 宏明さん