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)
とても便利なオートフィルターですが、日付となると、結構大変です。以下の表で説明します。ExcelマクロVBAの実用サンプル、エクセルVBA集と解説


大雑把に言えば、

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

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




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

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

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

Excelワークシート関数一覧(2010以降)|VBAリファレンス(4月22日)
クラスとCallByNameとポリモーフィズム(多態性)|VBA技術解説(4月6日)
VBAでのタイマー処理(SetTimer,OnTime)|VBA技術解説(4月3日)
クラスとイベントとマルチプロセス並列処理|VBA技術解説(4月2日)
エクセルの日付と時刻のまとめ|エクセル関数超技(3月6日)
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)

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

1.ひらがな⇔カタカナの変換|エクセル基本操作
2.最終行の取得(End,Rows.Count)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.RangeとCellsの使い方|ExcelマクロVBA入門
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.セルに文字を入れるとは(Range,Value)|VBA入門



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

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


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






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

    本文下部へ