RangeオブジェクトのValue、Value2、Text、Formula、Formula2プロパティ

セルのプロパティにはValueとTextという違いが分かりにくいものがあります。

違いの例を書くと、例としてセルの書式設定が会計形式「\0,000」の場合に、「1234」となるのがValueで「\1,234」となるのがTextです。書式を反映するかどうかがValueとTextの違いです。詳細は後述します。

Value、Textの他にもセルの値を表すプロパティにはValue2、Formula、FormulaR1C1があります。また、プロパティを省略した未設定での記述も可能です。

これらについて以下に説明します。


各プロパティの概要

各プロパティの概要です。

以下の各プロパティは参照は全てのプロパティで可能ですが、Textプロパティだけは設定ができません。

例1は書式を「\0,000」の金額形式に設定し、そこに「=1000+2000」という数式を入れた場合の例です。

例2は書式が日付形式の場合で、2017/8/27から25日引いた場合の例です。

詳細は後述しています。

プロパティ 扱う内容 参照 設定 例1(金額) 例2(日付)
未設定 Valueとして扱う 3000 2017/08/02
Value セルの計算結果の値 3000 2017/08/02
Text セルの書式を含めた表示文字列 × \3,000 2017年8月2日
Value2 シリアル値 3000 42949
Formula A1形式の数式 =1000+2000 =A1-A2
Formula2 スピルの数式 =1000+2000 =R[-2]C-R[-1]C



未設定とValueは値、Textは表示文字

A1セルの書式を「\0,000」の金額形式に設定し、そこに「=1000+2000」という数式を入れた場合に、各プロパティがどのように表現されるかのサンプルです。

実行結果

この結果の通り、プロパティ未設定とValueはセルの数式の「=1000+2000」の結果の「3000」が設定され、Textには「\3,000」の表示文字が設定されます。

未設定とValueの場合はセルの書式は反映されていませんが、Textは反映されます。このように、セルの書式を反映するかどうかがValueとTextの違いです。

参考としてValue2、Formula、FormulaR1C1も取得しています。

Formulaには数式の「=1000+2000」が設定されます。

Value2はValueと同じ値で、FormulaR1C1はFormulaと同じ値です。

数値の場合はこのように、FormulaとFormulaR1C1、ValueとValue2には同じ値が設定されます。

どのような場合が異なるのかを以下に説明します。


Value2はシリアル値、FormulaはA1形式数式、FormulaR1C1はR1C1形式の数式

先のサンプルは単純な数値の計算でしたが、日付形式の場合にするとValue2、セル座標を含めた数式だとFormula、FormulaR1C1などの違いが見えてきます。

実行結果

日付の場合は未設定とValueは日付形式のスラッシュ(/)区切りで、Textは書式設定の年月日付きになります。

これは先のサンプルと同じでセルの書式を反映しないのがValue、反映するのがTextです。

Value2には日付を表すシリアル値が入ります。具体的には1900/1/1からの経過日付の42949日を示しています。なお、1900/1/1は1日目としてカウントされます。

FormulaにはA1形式の数式、FormulaR1C1にはR1C1形式の数式が設定されます。Formula2とFormula2R1C1はスピル機能を使う場合に使用します。