DateSerial関数で月初や月末の日付を求めるツイートシェアはてブLINEPocketアクセス担当のまみです。対応する数値を返してくれるんですが、存在しない月や日の値でもちょっとした規則によって、日付としての値を返してくれます。そのことを利用して、翌月末の日付等求めることができます。支払期限の表示などに使えそうですね。今回は、DateSerial関数についてお伝えしますね。日)数値を日付の形にした値を返してくれます。日付として存在する数値だし、イメージ通りの結果です。11月は30日までで31だとその翌日の意味にとらえてくれるので、「2018/12/01」を返してくれます。0って数字は1の1つ前なので「2018/11/01」の前日の「2018/10/31」を返してくれます。3と同じ考えで、日付に-5を入れると、「2018/11/01」の6日前の「2018/10/26」を返してくれます。月は12月までなので13だと翌年の1月の意味にとらえてくれるので、「2019/01/03」を返してくれます。(はてな君)なんとなく法則がわかったよ。日付には存在しない数字でも日付におきかえてくれるって感じ?(あいちゃん)そうだね。その特性を活かして今月の末日の日付とか翌月の初日の日付とか求められるんだよ!(はてな君)へ~そうなんだ。id=2]翌月の末日や前月の初日を求める今日を基準として翌月の末日や前月の初日を求める式をまとめたものが下記の表です。DateSerial(Year(Date),Month(Date),0)※Year関数は年をMonth関数は月を取り出してくれます。Date関数については下記の記事をどうぞ!【Access】Date関数と書式の設定で日付の表示は自由自在2018年11月29日(あいちゃん)「Date」が今日の日付を表しているのでこの部分を変更することで任意の日付を基準として翌月の末日等求めることができるよ。(はてな君)へ~基準となる日から翌月末日とか求められるんだね。(あいちゃん)全部やるのは大変だからクエリとフォームで1つずつやってみようか。(はてな君)うん!そうそう翌々月10日とかもできるよね?(あいちゃん)上の表はちょっと難しい初日と末日しかまとめてないけど、翌々月10日でも翌月25日でももちろんできるよ!クエリを使って翌々月10日を求める使用するテーブル「T_納品管理表」(はてな君)翌々月10日を支払期限にしたいんだ。(あいちゃん)じゃあさっそくクエリを使って翌々月10日を求めてみよう!リボンの1「作成」タブから2「クエリデザイン」を選択し、「T_納品管理表」を追加します。3フィールドに直接入力してもいいですが、右クリックして「ズーム」を選択すると、大きな画面で編集できます。DateSerial(Year([発送日]),Month([発送日])+2,10)」と入力して「OK」を左クリックしましょう。(はてな君)データシートビューで確認してみてね!クエリは「Q_支払期限」と名前をつけておきましょう。フォームを使って翌月末日を求める(あいちゃん)フォームを使って何を求めようか?(はてな君)えっとね。btn計算フォームの作り方の詳細は下記の記事をどうぞ!アクセスVBAでフォームにボタンをを配置しよう2018年9月18日1「btnチェック」を選択した状態で、プロパティシートの2「イベント」タブを選択して「クリック時」に「イベントプロシージャ」を選びコードの画面を表示します。Sub」の間に下記のコードを記載しましょう。0)コードをコピーされたい場合は下記の記事を参考にしてください。関連記事コードのコピー(あいちゃん)フォームビューで確認してみてね!(はてな君)簡単に翌月末日がわかるようになったよ!フォームは「F_翌月末日」と名前をつけておきましょう。まとめDateSerial関数を上手に使うとカレンダーを数える必要がなくなりそうですね。