こんにちは、ぐーです!
VBAで請求書の入力を自動化した際、入力されたセルの日付を見て、思わず首をかしげてしまった経験はありませんか?
例えば、今日の日付を入れたはずなのに、ただの数字の羅列になったり、「2026/1/1」みたいな意図しない形式で出力されたりといったケースです。
「2026年01月01日」のように整えたい、あるいは金額に「¥」や「カンマ」を付与して見栄えを整えたい、と感じる場面は多いものです。
今回は、そんな悩みを一発で解決する「Format関数」について解説します。この関数を活用するだけで、資料の視認性と完成度が格段に向上します。
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を独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント