関数・メソッド

セルの表示しているデータを取得する【Textプロパティ】【ExcelVBA】

構文

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基本】

コメント

タイトルとURLをコピーしました