エクセル

VBA使用!! 指定した日付の月内での週番号を取得する方法

VBAを使って週番号を取得しようと思い、いざググルと、今日が1年のうちの第何週目かを取得するサンプルにヒットすることが多いかと思います。ほしいのは1年でなく、その月の第何週目なんじゃいという方向けに、VBAを活用して指定した日付の月内での週番号を取得する方法を解説していきます。VBAプログラマーはぜひご参考ください。

VBAサンプルコーディング

step
1
ボタンを準備します

エクセルの開発タブから挿入をクリックして、ボタンコントロールを適当な箇所に配置します。

step
2
作成したボタンで右クリック→マクロの登録をクリック

マクロの名前はご自由に。今回は「button_Click」とします。登録すると、Sub button_Click()という、ボタン押下時の処理が記述できるルーチンが出来上がります。そこにコーディングしていきましょう。

step
3
下記のVBAを参考にしてコーディング

ポイントは、DatePart関数を使用するところです。DatePart("WW", wkdate, vbSunday)で週数を取得できます。第3引数に週の始まりを何曜日にするかの設定が可能で、vbSundayはVBA標準の定数です。

月の週番号を取得する箇所はコピペで大丈夫です。日付だけ変数を割り当てるように適宜修正しましょう。

ここでは日付をD列2行目に入力して、取得できた月の週番号はD列4行目に設定する仕様とします。

ボタンを実行してデータを取得

step
4
作成したボタンをクリック

それでは早速日付を設定して、用意したボタンを押下してみましょう。今回は何もエラーハンドリングのコーディングはしていませんので、日付を設定しないでボタンを押下しても期待通りの結果は返ってきませんよ。

step
5
実行結果

日付「2020/11/25」に対する月の週番号「4」が設定されていることが確認できました。

まとめ

今回はVBAを使用してのサンプルコーディングを行いましたが、VB.NETでももちろん使えます。C#はこのやり方だと無理かな・・・

DatePart関数って確かMicrosoft.VisualBasic用だったと思うので、C#では別のやり方を考える必要があるかと思います。

最後までお読みいただきありがとうございました。

-エクセル
-,

© 2021 秀凛堂