こんにちは。
ごんた@VBAレッスン です。
今日は、実務でよく使うのに意外と知られていない
format関数の便利さについてお話しします。
特に、日付を並べたいときに
「Year や Month や Day を組み合わせて、2桁にして、& でつなぐ」
という昔ながらのやり方をしていた方には、
きっと“目からウロコ”になる内容です。
■ 昔はこうやって日付を作っていた(あるある)
私も最初は、こんなコードを書いていました。
```vb
Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
```
そう、
Right("0" & Month(Date), 2)
これ、みんな一度は通る道なんですよね。
当時のVBA本は全部この書き方だったので、
「これが正解なんだ」と信じて真面目にやっていました。
でも、実務で使っていると…
- コードが長い
- 読みにくい
- 修正が面倒
- 似た処理を何度も書く
という“地味なストレス”が積み重なっていきます。
■ format関数を知った瞬間、世界が変わる
同じことが、formatを使うと一撃で終わります。
● 8桁の yyyymmdd を作りたい
```vb
Format(Date, "yyyymmdd")
```
● yyyy-mm-dd にしたい
```vb
Format(Date, "yyyy-mm-dd")
```
● 日本語表記にしたい
```vb
Format(Date, "yyyy年m月d日")
```
● 月や日を2桁固定にしたい
```vb
Format(Date, "yyyy/mm/dd")
```
もう、
「なんで今まであんなに頑張ってたんだ…」
ってなるやつです。
■ formatが強い理由(実務目線)
- コードが短くなる
- 読みやすい
- ミスが減る
- 再現性が高い
- ログやファイル名に最適
特にファイル名で使うと最強です。
```vb
"Report_" & Format(Date, "yyyymmdd") & ".xlsx"
```
■ ネットで調べても「これ!」が見つからない理由
実は、VBAは
同じ目的に対して複数のアプローチが存在する
という特徴があります。
だからネット検索すると、
- 人によって書き方が違う
- どれが正解か分からない
- 似たようなコードが大量に出てくる
という“迷子現象”が起きます。
でも、これは悪いことではなくて、
VBAが柔軟である証拠 なんです。
■ 大事なのは「一つの方法だけで満足しないこと」
今日の話の本質はここです。
> 大事なことは、一つの解決方法だけで満足しないこと。
> 色々な解決方法を知っていると、別の場面で役立つこともある。
format関数はその“引き出し”のひとつ。
Right("0" & …) も正しい。
Year & Month & Day も正しい。
format も正しい。
どれも道具。
道具が多いほど、実務で強くなる。
🌱 まとめ(ごんた式)
- 日付整形は昔ながらの方法だと長くて読みにくい
- format関数を使うと一撃で整う
- VBAは複数のアプローチがあるから迷いやすい
- 大事なのは“引き出しを増やすこと”
- formatはその中でも実務で最強クラスの道具
そして最後にひとつ。
> 困ったときは、一つの方法にこだわらなくて大丈夫。
> あなたの状況に合わせて、最適なアプローチをいくつか一緒に探していきます。
🌱 VBAを学び始めた方へ。
あなたの“困った”に合わせて、複数のアプローチを丁寧にお伝えするレッスンはこちら!