【VBA】「日付が変!」をVBAのFormat関数で思い通りにする方法

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

こんにちは、ぐーです!

VBAで請求書の入力を自動化した際、入力されたセルの日付を見て、思わず首をかしげてしまった経験はありませんか?

例えば、今日の日付を入れたはずなのに、ただの数字の羅列になったり、「2026/1/1」みたいな意図しない形式で出力されたりといったケースです。

「2026年01月01日」のように整えたい、あるいは金額に「¥」や「カンマ」を付与して見栄えを整えたい、と感じる場面は多いものです。

今回は、そんな悩みを一発で解決する「Format関数」について解説します。この関数を活用するだけで、資料の視認性と完成度が格段に向上します。

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

Format関数ってなに?

簡単に言うと、データの「着せ替え」を行うための機能です。

値そのものは保持したまま、表示形式という「外装」だけを自由に設定できるのが大きな特徴となります。

記述方法は非常にシンプルです。

Format(着せ替えたい値, "着せ替えたい服の指定")

【コピペOK】実務で頻用する表示形式パターン3選

実務ですぐに活用できる、鉄板のパターンをご紹介します。

1. 日付を「〇〇年〇〇月〇〇日」の形式に整える

報告書や契約書の作成において、最も活用頻度が高い設定です。

Sub FormatDate()
    ' 今日が2025年5月1日だとする
    Dim todayData As Date
    todayData = Date
   
    ' そのまま表示
    MsgBox todayData ' 結果:2025/05/01
   
    ' Format関数で着せ替え!
    MsgBox Format(todayData, "yyyy年mm月dd日") ' 結果:2025年05月01日
End Sub

  • yyyy:年(4桁)
  • mm:月(2桁・0埋め)
  • dd:日(2桁・0埋め)

「月は0埋めしたくない(5月のままがいい)」という時は、mを一つに減らして”yyyy年m月d日”にすればOKです。

2. 金額にカンマ区切りと「¥」マークを付与する

請求書の金額欄において、数値がそのまま並んでいる状態では視認性が損なわれてしまいます。

Sub FormatMoney()
    Dim price As Long
    price = 1234567
   
    ' カンマ区切りと円マークをつける

' 円マークをダブルクォーテーションで囲むことで、エスケープを回避します
    MsgBox Format(price, """¥""#,##0")  ' 結果:¥1,234,567
End Sub

  • #:数字がある時だけ表示
  • 0:数字がない時は0を表示(桁数合わせ)
  • , :3桁区切りのカンマ

3. ゼロ埋めでIDの桁数を統一する(社員番号など)

「社員番号を必ず6桁で管理したい(例:000123)」という場面でも、Format関数が活躍します。

Sub FormatID()
    Dim employeeID As Long
    employeeID = 123
   
    ' 6桁になるように頭を0で埋める
    MsgBox Format(employeeID, "000000") ' 結果:000123
End Sub

こうした細かな整形作業を手作業で行うのは手間がかかりますが、VBAであれば一瞬で処理が完了します。ぜひ日々の業務に取り入れてみてください!

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


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

この記事を書いた人
ぐー

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

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

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

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

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

コメント

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