Excel VBA 日付の月だけ表示する方法

Q
Q

月の数字を表示させたい。
Formatで合ってる?

SunShine!
SunShine!

それでもいいけど別の方法もあるよ。

Excel

Excel VBA
月を取り出す方法

Excel VBA の関数の話。
型とかあんまり意識しなくてもいいプログラミング言語だけど、Date型を使いこなせると効率よくいろいろできると思うよ。
年月日はいろんな場面で使うからね。

月の数字だけ取り出す

月によって処理を変えるとか、よくある話。
たとえば、4月から9月なら上期で、それ以外は下期とか。
期末の月だけ特殊な処理をするとか。
月跨ぎを検知するとか。
ただ表示させたいとか。

いろんな場面で使うと思うからこそ、効率よく書きたい。

シート

やりようはいろいろとあるが。
おすすめはパターン1ね。

ここで書いてる「Now()」は現在の日付と時刻を取得する。返り値はDate型。

パターン1: より最短距離で

Date型の変数から月の数字を取得する関数。
Month
第1引数にDate型の値。

Month(Now())

取得できる値は「M」。
だから、4月なら「4」で、11月なら「11」。

パターン2: 書式設定

いい感じに表示書式を設定できる関数。
Format
第1引数が対象の値。第2引数でフォーマットを指定。

一応ここでは、Date型関数を取り扱う前提で。

Format(Now(), "M")

これで月だけ取得できる。
上記で取得できる値は、4月なら「4」で、11月なら「11」。

もしゼロ埋めしたいなら、こっちを使った方がいいかも。

Format(Now(), "MM")

フォーマットを「MM」にしてる。
上記で取得できる値は、4月なら「04」で、11月なら「11」。

使える文字の仕様はExcelの書式設定と同じ。詳しくはマニュアルをどうぞ。
ちなみに、年月日自分秒表示させたいなら以下。

Format(Now(), "YYYY/M/D hh:mm:ss")

目的や他との兼ね合いで

記述は手段だからね。
何をしたいかとか、前後でどんな処理をしてるかによって、書き方は変わってくる。

記述はこれだけじゃないでしょ?

スプレッドシート

デバッグウィンドウに表示するのは目的じゃないでしょうに。
一連の処理の中でやること。
ここで取得した値を条件分岐にも表示にも使うとか、まあ、いろいろ。

ご意見やご感想などお聞かせください! コメント機能です。

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