![Q](https://pxa.xsrv.jp/test103/wp-content/uploads/2021/08/person-003.png)
月の数字を表示させたい。Format
で合ってる?
![SunShine!](https://pxa.xsrv.jp/test103/wp-content/uploads/2020/07/ohisama-icon-001.png)
それでもいいけど別の方法もあるよ。
![Excel](https://pxa.xsrv.jp/test103/wp-content/uploads/2024/04/Excel-201-300x169.png)
Excel VBA
月を取り出す方法
Excel VBA の関数の話。
型とかあんまり意識しなくてもいいプログラミング言語だけど、Date型を使いこなせると効率よくいろいろできると思うよ。
年月日はいろんな場面で使うからね。
月の数字だけ取り出す
月によって処理を変えるとか、よくある話。
たとえば、4月から9月なら上期で、それ以外は下期とか。
期末の月だけ特殊な処理をするとか。
月跨ぎを検知するとか。
ただ表示させたいとか。
いろんな場面で使うと思うからこそ、効率よく書きたい。
![シート](https://pxa.xsrv.jp/test103/wp-content/uploads/2023/09/image-300x156.png)
やりようはいろいろとあるが。
おすすめはパターン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")
目的や他との兼ね合いで
記述は手段だからね。
何をしたいかとか、前後でどんな処理をしてるかによって、書き方は変わってくる。
記述はこれだけじゃないでしょ?
![スプレッドシート](https://pxa.xsrv.jp/test103/wp-content/uploads/2024/01/spreadsheet-002-300x169.jpg)
デバッグウィンドウに表示するのは目的じゃないでしょうに。
一連の処理の中でやること。
ここで取得した値を条件分岐にも表示にも使うとか、まあ、いろいろ。
ご意見やご感想などお聞かせください! コメント機能です。