Accessシステムを開発していると、
- 今月末の日付を取得したい
- 30日後の日付を計算したい
- 稼働日数を算出したい
- yyyy/mm形式で表示したい
- 前月データだけ抽出したい
- 年度を判定したい
といった日付処理が頻繁に発生します。
Access開発では日付操作を理解するだけで業務システムの大半の計算処理に対応できます。
実際の業務では、
- 業務実施記録
- 棚卸管理
- 売上集計
- 勤怠管理
- 精算日
など、ほぼ全てのシステムで日付処理が必要になります。
今回は実務で利用頻度の高い
- Date
- Now
- DateAdd
- DateDiff
- Format
- Year
- Month
- Day
を使った実践テクニックを紹介します。
- 現在日付を取得したい
- 現在日時を取得したい
- システム日付をフォームへ初期表示したい
- 7日後の日付を取得したい
- 30日前の日付を取得したい
- 1か月後の日付を取得したい
- 1年前の日付を取得したい
- 日付差を計算したい
- 設備点検の経過日数を求めたい
- 年齢を計算したい
- 年だけ取得したい
- 月だけ取得したい
- 日だけ取得したい
- 曜日を取得したい
- 曜日名を表示したい
- 年月表示にしたい
- yyyymm形式へ変換したい
- yyyymmdd形式へ変換したい
- 時刻付き表示をしたい
- 月初日を取得したい
- 月末日を取得したい
- 前月末日を取得したい
- 当月データだけ抽出したい
- 年度を判定したい
- 実務活用例① 記録管理
- 実務活用例② 設備点検システム
- 実務活用例③ 月次報告書作成
- 実務活用例④ CSV取込履歴管理
- Copilot活用術① 月末取得コード生成
- Copilot活用術② 年度管理ロジック作成
- Copilot活用術③ 日付計算の検証
- Access開発者が最も使う日付関数ベスト5
- 日付操作で失敗しないポイント
- まとめ
現在日付を取得したい
最も基本的な処理です。
Date
結果
2026/08/28
現在日付のみ取得できます。
現在日時を取得したい
時間まで必要な場合です。
Now()
結果
2026/08/28 14:30:15
ログ管理などで利用します。
システム日付をフォームへ初期表示したい
フォーム起動時です。
Me!実施日 = Date
入力の手間を削減できます。
7日後の日付を取得したい
DateAdd関数を利用します。
DateAdd("d",7,Date)
結果
2026/09/04
30日前の日付を取得したい
DateAdd("d",-30,Date)
結果
2026/07/29
検索条件でよく利用します。
1か月後の日付を取得したい
DateAdd(“m”,1,Date)
結果
2026/09/28
期限管理などで活躍します。
1年前の日付を取得したい
DateAdd("yyyy",-1,Date)
結果
2025/08/28
前年比較で利用します。
日付差を計算したい
DateDiff関数を利用します。
DateDiff("d",#2026/08/01#,#2026/08/28#)
結果
27
27日間と判定されます。
設備点検の経過日数を求めたい
DateDiff("d",最終点検日,Date)
結果
120日
点検期限管理に便利です。
年齢を計算したい
社員管理で利用します。
DateDiff("yyyy",生年月日,Date)
簡易的な年齢計算ができます。
ただし誕生日の考慮が必要な場合は別途調整しましょう。
年だけ取得したい
Year(Date)
結果
2026
年度計算の基本です。
月だけ取得したい
Month(Date)
結果
8
月次集計で利用します。
日だけ取得したい
Day(Date)
結果
28
曜日を取得したい
Weekday(Date)
結果
6
数値で取得されます。
曜日名を表示したい
Format(Date,"aaa")
結果
金
年月表示にしたい
非常によく利用します。
Format(Date,"yyyy/mm")
結果
2026/08
月次資料で定番です。
yyyymm形式へ変換したい
ファイル名生成で利用します。
Format(Date,"yyyymm")
結果
202608
yyyymmdd形式へ変換したい
取込ファイル作成で利用します。
Format(Date,"yyyymmdd")
結果
20260828
時刻付き表示をしたい
Format(Now(),"yyyy/mm/dd hh:nn:ss")
結果
2026/08/28 14:30:15
ログ出力では定番です。
月初日を取得したい
かなり実務で使います。
DateSerial(Year(Date),Month(Date),1)
結果
2026/08/01
月次集計で利用します。
月末日を取得したい
Access開発者必須テクニックです。
DateSerial(Year(Date),Month(Date)+1,0)
結果
2026/08/31
前月末日を取得したい
DateSerial(Year(Date),Month(Date),0)
結果
2026/07/31
売上締め処理でよく利用します。
当月データだけ抽出したい
クエリ条件です。
Between
DateSerial(Year(Date()),Month(Date()),1)
And
DateSerial(Year(Date()),Month(Date())+1,0)
月次集計の定番です。
年度を判定したい
4月始まりの場合です。
If Month(Date) >= 4 Then
年度 = Year(Date)
Else
年度 = Year(Date)-1
End If
官公庁や製造業でよく利用します。
実務活用例① 記録管理
期限管理です。
DateDiff("d",実施日,Date)
経過日数を表示できます。
一定期間を超えた場合に警告表示も可能です。
実務活用例② 設備点検システム
次回点検日を自動計算します。
DateAdd("m",6,点検日)
半年後の点検予定日を自動設定できます。
実務活用例③ 月次報告書作成
ファイル名自動生成です。
"月次報告書_" & Format(Date,"yyyymm") & ".pdf"
結果
月次報告書_202608.pdf
PDF出力との相性も抜群です。
実務活用例④ CSV取込履歴管理
ログ出力です。
CurrentDb.Execute _
"INSERT INTO T_LOG(取込日時) " & _
"VALUES(#" & Format(Now(),"yyyy/mm/dd hh:nn:ss") & "#)"
取込履歴を管理できます。
Copilot活用術① 月末取得コード生成
Copilotへ依頼します。
Access VBAです。
今月末日を取得する方法と
使用例を教えてください。
複数パターンを確認できます。
Copilot活用術② 年度管理ロジック作成
Access VBAです。
4月始まりの年度を自動判定する
関数を作成してください。
すぐにサンプルコードを生成できます。
Copilot活用術③ 日付計算の検証
DateAdd関数で
2026/01/31に1か月加算した場合
どうなりますか。
特殊ケースの確認ができます。
Access開発者が最も使う日付関数ベスト5
実務頻度でいうと次の順です。
1位 Format
表示変更
2位 DateAdd
加算・減算
3位 DateDiff
経過日数計算
4位 Date
現在日付取得
5位 DateSerial
月初・月末取得
この5つだけでもかなりの業務処理を作成できます。
日付操作で失敗しないポイント
日付型で保存する
おすすめ
2026/08/28
日付型
避けたい例
20260828
文字列型
計算や検索が難しくなります。
表示はFormatで行う
データを加工するのではなく、
Format(日付,"yyyy/mm")
などで表示側を調整しましょう。
月末計算はDateSerialを使う
月ごとの日数を意識する必要がなくなります。
まとめ
Access VBAの日付処理を理解すると、
- 期限管理
- 保守管理
- 月次集計
- 年度管理
- 履歴管理
- ログ管理
などの業務システムを効率的に構築できます。
特に実務で覚えておきたいのは、
- Date
- Now
- Format
- DateAdd
- DateDiff
- DateSerial
の6つです。
また、Copilotを活用することで複雑な日付計算ロジックや年度判定処理も短時間で作成できます。
Access開発では文字列処理と並んで利用頻度が高いテーマですので、ぜひ覚えておきたい実践テクニックです。


コメント