ACCESS VBAで翌月初を求める方法(VBAコード公開)
ACCESSで日付操作をする際に、よく利用するのが翌月の初日を求める計算です。
月初の日付を入力したり、その日付で処理をする際に利用されます。
今回は、ACCEESS VBAで翌月初を求める方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
完成形
翌月初を求める処理は、VBAの中で使用されることが多いため、引数に指定した日付の翌月初の日付を返すFunctionプロシージャを作成しました。
PPublic Function yokugetsu_syo(x As Date) As Date
です。
例えば、
yokugetsu_syo(#2022/02/14#)
と入力して実行すると、okugetsu_syoに2022/03/1の値が入って返されます。
メッセージボックスに日付を出したい場合は、
Public Sub hiduke_yobidashi()
MsgBox "翌月初:" & yokugetsu_syo(Date)
End Sub
で実行すると、下記のように表示されます。
翌月初を求めるプロシージャ
それでは、翌月初を求めるプロシージャを紹介します。
Public Function yokugetsu_syo(x As Date) As Date
Dim daycount As Date
daycount = x
Do While Format(x, "mm") = Format(daycount, "mm")
daycount = DateAdd("d", 1, daycount)
Loop
yokugetsu_syo = daycount
End Function
以下、解説します。
まず、引数としてDate型のxを指定しています。
これが、計算のもとになる、翌月初を求めたい対象の日付です。
そして、daycountという変数にxを代入します。
その後、Do Whileを使ってdaycountに対するループ処理をします。
これは、daycountに格納されている日付を、元のxと月が異なるまで1日ずつ増やしていく、という処理です。
xと月が異なったタイミングでこの処理が止まりますので、その時点でdaycountに格納されているのは翌月初の日付になる、ということです。
最後にyokugetsu_syoにdaycountの値を格納して終わりです。
今回は翌月初でしたが、前月末や翌月末を求めたい場合は以下の記事もご参照ください。
以上、VBAで翌月初を求める方法でした。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。