RangeクラスのTextプロパティは読み取り専用
Range.Textプロパティは読み取り専用なので、直接このプロパティに書き込みはできません。
変数への代入は、右辺から左辺に行われますので、Range.Textプロパティを使うときは左辺になければならないという事になります。
エラーを出して検証
以下のコードでは、エラーが発生します。
Sub test1()
Range("A1").Text = "abc" 'エラー:オブジェクトが必要です
Debug.Print Range("A1").Text
End Sub
Rangeクラスに値を代入したい場合は、Valueプロパティを使います。
尚、Valueプロパティは省略可能なので、2行目のコードも1行目と同じ事になります。
Sub test3()
Range("A1").Value = "abc"
Range("A2") = "def"
Debug.Print Range("A1").Text
Debug.Print Range("A2").Text
End Sub
Valueプロパティは読み書き可能なプロパティです。
Textプロパティを使うケースは、セルに表記された文字列の状態で取得したい場合などです。
Textプロパティであれば、カンマで単位切りされた数値や日付などを文字列で取得する事ができます。
コメント