VBA技術解説
セルの値について(Value,Value2,Text)

ExcelマクロVBAの問題点と解決策、VBAの技術的解説
公開日:2013-06-20 最終更新日: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)
とても便利なオートフィルターですが、日付となると、結構大変です。以下の表で説明します。普通は、こんなように指定します。Operator:=xlFilterValues は2007以降で追加された機能です。


大雑把に言えば、

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

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



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

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


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

カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




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


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



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