月の数字を表示させたい。Format
で合ってる?
それでもいいけど別の方法もあるよ。
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")
目的や他との兼ね合いで
記述は手段だからね。
何をしたいかとか、前後でどんな処理をしてるかによって、書き方は変わってくる。
記述はこれだけじゃないでしょ?
デバッグウィンドウに表示するのは目的じゃないでしょうに。
一連の処理の中でやること。
ここで取得した値を条件分岐にも表示にも使うとか、まあ、いろいろ。
ご意見やご感想などお聞かせください! コメント機能です。