「日付が謎の数字に…」VBAで焦らないための、ValueとTextの使い分け術

【業務効率化】VBA
スポンサーリンク

この記事はこんな悩みを解決します

  • セルの日付(例:11/29)を取得した際、謎の数値(45259など)が表示されて困惑した。
  • 金額の「¥」マークやカンマが消えてしまい、出力結果の見栄えが悪くなった。
  • ValueとText、どちらのプロパティを使うべきか判断基準を知りたい。

「日付が壊れた!?」いいえ、それはExcelの「素」の状態です

事務作業の自動化において、日付や金額の扱いは避けて通れません。

しかし、VBAで意気揚々とセルのデータを取得したとき、こんな経験はありませんか?

「Excel上では『2025/11/29』と表示されているのに、VBAで取得したら『45990』になった。コードが間違っているの?」

決して、あなたのコードが間違っているわけでも、PCが故障したわけでもありません。

これは、Excelがデータを扱う際の「2つの顔」に違いがあるからです。

【業務効率化】VBAの記事を見る

結論:スッピンの「Value」と、メイク後の「Text」

Excelのセルには、データを制御するための2つの重要なプロパティ(属性)があります。

  • Value(バリュー)プロパティ セルの「真の値」(スッピンの状態)
  • Text(テキスト)プロパティ セルに「表示されている見た目」(メイク後の状態)

Textプロパティは「現在画面に表示されている通りの文字列」を取得します。

対してValueプロパティは、セルの根本的な値を返します。Excelは内部的に、日付を「シリアル値」という数値で管理しているため、Valueで取得すると「45990」のような数字が現れるのです。

使い分けコード集:コピー&ペーストで活用可能

実際にどう使い分ければいいのか、実務で即戦力となるコード例を見ていきましょう。

ケース1:見た目通り(¥マークや日付形式)に取得したい場合

報告書やメール本文に転記する場合は、.Textを使用します。

Sub GetDisplayText()
    ' A1セルに「2025/11/29」、B1セルに「¥10,000」と入力されている想定
    Dim myDate As String
    Dim myMoney As String
    ' .Textを使うと、画面上の表示をそのまま文字列として取得できます
    myDate = Range("A1").Text
    myMoney = Range("B1").Text
    ' 結果をメッセージボックスで確認
    ' 表示例:今日は 2025/11/29 です。金額は ¥10,000 です。
    MsgBox "今日は " & myDate & " です。金額は " & myMoney & " です。"
End Sub

.Textは「セルの幅が狭くて####と表示されている場合、その####を取得してしまう」という落とし穴があるので、注意しましょう。

ケース2:計算処理に使用したい場合

取得した値を使って加算などの計算を行う場合は、記号を含まない .Value が適しています。

Sub GetValueForCalc()
    ' A1セルに「100」、B1セルに「200」と入力されている想定
    Dim result As Long
    ' .Valueを使うと、数値として計算が可能です
    result = Range("A1").Value + Range("B1").Value
    ' 表示:合計は 300 です。
    MsgBox "合計は " & result & " です。"
End Sub

【重要】書き込みは「Value」の一方通行!

ここで、非常に重要な注意点があります。

.Textプロパティは「読み取り専用」です。

データを読み取る際には .Text を利用できますが、セルに値を書き込む(代入する)際に .Text を使うとエラーが発生します。セルに値を入力する場合は、必ず .Value を使用しましょう。

Sub SetValue()
    Range("A1").Value = "テスト入力"
    ' 【間違い】以下のコードは実行時エラーになります
    ' Range("A1").Text = "これは代入できません" 
End Sub

最後に:失敗を恐れずにステップアップしましょう

計算するならValue、見た目重視ならText」。

この基本ルールさえ押さえておけば、日付が謎の数値に変わっても焦る必要はありません。

一歩ずつ、VBAを使いこなせるようになっていきましょう!

【業務効率化】VBAの記事を見る


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

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