ExcelマクロVBA技術解説 | セルの値について(Value,Value2,Text) | ExcelマクロVBAの問題点と解決策、エクセルVBAの技術的解説



最終更新日:2013-09-05

セルの値について(Value,Value2,Text)


マクロVBAにおいて、セルの値を操作する事は基本の基本ですが、意外に理解できていない場合が多いようです。

Value
指定されたセル範囲の値を表すバリアント型 (Variant) の値を設定します。

値の取得および設定が可能です。

Value2
セルの値を設定します。値の取得および設定が可能です。
バリアント型 (Variant) の値を使用します。

Text
指定されたオブジェクトに対し、文字列を設定します。
値の取得のみ可能です。
文字列型 (String) の値を使用します。

ValueとValue2の違い
Value2 プロパティでは、通貨型 (Currency) および日付型 (Date) のデータ型を使用しない点のみが、Value プロパティと異なります。
倍精度浮動小数点型 (Double) を使用することにより、これらの 2 種類のデータ型の値を浮動小数点数として返すことができます。

以上は、ヘルプからの抜粋になります。

これだけでは、なかなか理解しづらいでしょう。

実際の例です。

セルに
2013/6/20」を入れ、表示形式を「yyyy"年"mm"月"dd"日"」とした場合、
Value : 2013/06/20 ・・・ 日付型
Value2 : 41445 ・・・ 倍精度浮動小数点型
Text : 2013年06月20日 ・・・ 文字列型


データ型に注意して下さい。

問題は、関数・メソッド等でセルを指定した場合、
Value、Value2、Textのいずれが使用されるかが不明な事が多い事です。


例えば、WorksheetFunctionを使う場合

CountIf関数の場合、
検索値が、文字列として「'41445」、「'6月20日」、「2013/6/20」のいずれでも対象となります。
従って、Value、Value2、Textのいずれでも良いと言う事になります。

しかし、

Matchの場合は、
検索値が、数値型として「41445」でなければ検索されません。
従って、Value2でなければなりませんので、通常はこれを省略して使います。

また、

Findメソッド値で検索の場合は、Textで検索されることになります。

AutoFilterの場合は、

バーションにより変化しており、特に日付は2007以降で大きく変わっています。
日付のオートフィルタ(AutoFilter)


大雑把に言えば、

ワークシート関数(WorksheetFunction)の引数に指定する場合は、このプロパティを指定しない。

Range等のメソッドでは、個別に対応が必要になります。




同じテーマ「マクロVBA技術解説」の記事

値渡し、参照渡しについて(ByVal,ByRef)
最終行・最終列の取得方法(End,CurrentRegion,SpecialCells,UsedRange)
ユーザー定義関数の作り方
セルの値について(Value,Value2,Text)
Excelのバージョンを判断して「名前を付けて保存」
空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)
空白セルを正しく判定する方法2
Rangeオブジェクト.Valueの省略について
ユーザー操作を制限する(Locked,Protect,ScrollArea)
シートに数式を設定する時のセル参照の指定方法
標準モジュールとシートモジュールの違い

新着記事 ・・・新着記事一覧を見る

VBAの省略可能な記述について|ExcelマクロVBA技術解説(8月11日)
複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)
ファイルの操作|MOS VBAエキスパート対策(3月14日)
ユーザーフォームの各種イベント|Excelユーザーフォーム(3月13日)
レジストリの操作|MOS VBAエキスパート対策(3月12日)
変数と配列|MOS VBAエキスパート対策(3月12日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数とデータ型(Dim)|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.マクロって何?VBAって何?|ExcelマクロVBA入門
6.RangeとCellsの使い方|ExcelマクロVBA入門
7.とにかく書いて見よう(Sub,End Sub)|VBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.定数と型宣言文字(Const)|ExcelマクロVBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門



  • >
  • >
  • >
  • セルの値について(Value,Value2,Text)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP