こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
Excelのデータ貼り付けで「日付が謎の数字(シリアル値)になった!」とか「金額に¥マークをつけるのが面倒!」といったことはありませんか?
これはExcelの仕様のせいなんですが、今回は、そんな「見た目のイライラ」を解消する、VBAの「NumberFormatLocal(ナンバーフォーマットローカル)」という設定についてご紹介します。
なぜ「NumberFormatLocal」なの?
VBAには単なる「NumberFormat」もありますが、「NumberFormatLocal」がおすすめです。Excelの「セルの書式設定」画面と同じ言葉(日本語環境の形式)がそのまま使えるからです。
難しい英語を覚えなくても、普段Excelで見ている「yyyy/m/d」などの形式を指定するだけでOKです。これなら使いやすいですよね。
コピペで使えるコード
以下のコードをコピーして、標準モジュールに貼り付けてみてください。
Sub ChangeFormat()
' A列を「2026年11月30日」の形式にする
Range("A:A").NumberFormatLocal = "yyyy""年""m""月""d""日"""
' B列を「¥1,000」の形式(通貨)にする
Range("B:B").NumberFormatLocal = "¥#,##0"
' C列を「090-0000-0000」のように頭の0を残す(文字列扱い)
Range("C:C").NumberFormatLocal = "@"
MsgBox "見た目を整えました!"
End Sub
これまではVBAの出力結果が入る前後で書式を設定していたかもしれません。
でもこれらを必要に応じて、組み込むことで一発でほしい結果を出してくれます!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント