構文
Object.Text
Valueプロパティはセルの入力値を取得しますが、
Textプロパティはセルの表示しているデータを取得します。
セルの表示しているデータとは、設定している表示形式も含めて取得することです。
Textプロパティのコードサンプル
Public Sub test() '■セルA1に"10000"と入力し、表示形式を数値桁区切り(,)を使用した場合 Debug.Print Range("A1").Value '10000 Debug.Print Range("A1").Text '10,000 '■セルA1に"2021/3/15"と入力されている場合 Debug.Print Range("A1").Value '2021/03/15※これは日付形式の設定にもよる Debug.Print Range("A1").Text '2021/3/15 '■セルA1に"30"と入力し、表示形式が%の場合 Debug.Print Range("A1").Value '30 Debug.Print Range("A1").Text '30% '■セルA1に"1234567890123"と13桁の数値(JANコード等)を入力。 '■■セルで正常に表示できていない場合 (指数表示) Debug.Print Range("A1").Value '1234567890123 Debug.Print Range("A1").Text '1.23457E+12 '■■セルで正常に表示できていない場合 (#####表示) Debug.Print Range("A1").Value '1234567890123 Debug.Print Range("A1").Text '##### End Sub
注意点
- Textプロパティはセルの表示している内容をそのまま表示します。
※値取得ではなく、表示内容を取得します。 - 桁区切りやパーセンテージなどはセルのデータを取得するだけで有効ですが、
JANコード等は値で取得(Valueプロパティ)で取得しないと思わぬデータとして取得してしまいます。
関連記事
セルに値を入力する【Valueプロパティ】【ExcelVBA】
セルのシリアル値を取得する【Value2プロパティ】【ExcelVBA】
【VBA基本】変数のデータ型一覧
【VBA基本】セルやセル範囲の値を消去する
RangeとCellの使いわけ【VBA基本】
コメント