ACCESS VBAで毎月の指定日を求める方法(VBAコード公開)
VBAで処理をする際、毎月10日や毎月20日など、支払日や請求日を求めたい場合があると思います。
そんな時に利用できる、VBAのコードを作成しましたので作成方法を含めてご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
毎月の指定日を求めるコード
該当の月の指定の日付の値を作るにはどうすればよいでしょうか。
例えば、2022年2月という月のデータを与えた際に、2022年2月10日や2022年2月20日といった値を返したいとします。
こうした毎月の指定日は、以下のVBAのコードで求めることができます。
結果日付 = DateValue(Year(元の日付) & "/" & Month(元の日付) & "/" & 指定日)
日本語の部分は実際には変数や数値を入れて利用します。
内容を解説します。
まず、Year関数やMonth関数を使って、もともと与えられた日付から年や月の値を作成します。
そしてそれらを /(スラッシュ)を挟みながら & (アンド)でつないでいきます。
最後に、指定の日付をテキストで直接入力してつなげます。
これだけだと見た目は日付に見えますが、テキストデータになってしまっているので、全体をDateValue関数で日付データに変換します。
元の日付を代入する前に前月や翌月にする処理を組み合わせれば、前月の指定日や翌月の指定日も簡単に求められます。
当月20日のデータの作成方法
例として、当月20日のデータを変数処理で求めてみましょう。
この記事を書いているのは2022年2月19日ですので、この日付を入れると2022年2月20日が結果として出るようにします。
Public Function maitsuki_20(x As Date) As Date
maitsuki_20 = DateValue(Year(x) & "/" & Month(x) & "/" & 20)
MsgBox maitsuki_20
End Function
ここでは、maitsuki_20という変数に、当月の20日の日付を計算して格納し、最後にメッセージボックスで表示しています。
実行する際は以下のように記述します。
maitsuki_20(#2022/2/19#)
実行すると下記のようになります。
今回はわかりやすくメッセージボックスに表示していますが、実際には変数に日付を格納してさらに別の処理に利用することが多いでしょう。
以上、VBAで毎月の指定日を求める方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。