新規作成のワークシートで始めて実行すると、D4には日付関数が書かれる。
これはDate関数が日付関数でデータを返してくることが分かる。そのために日付に変換する
のが、Selection.NumberFormatLocal = "d" で数値に変換している。
尚、一度このプログラムを実行すると、セルが記憶するので、プログラムのこの部分を削除
しても数値日付で表示される。
Date関数は、ワークシート関数のTODAYと同じように今の日付を算出する。
Month(Date) は今日の日付の月を算出する。
Day(Date) は今日の日付の日を算出する。
4. VBAプログラムによる月の算出
当月を基準に先の月を算出する。
12月の次は1月になるようにプログラムをする必要がある。
3. VBAプログラムによる月の算出
セルの関数を見てください。

=EOMONTH(B9,0)
B9の月末日を算出
セルの関数を見てください。

=EOMONTH(B8,0)
B8の月末日を算出
セルの関数を見てください。

=EOMONTH(B7,0)
B7の月末日を算出
セルの関数を見てください。

=IF(C4=12,B4+1&"/"&1&"/"&TEXT(I9,"d"),B4&"/"&C4+1&"/"&TEXT(I9,"d"))
これは来月部の末日である。
セルの関数を見てください。

=B4&"/"&C4&"/"&TEXT(H6,"d")
これは当月の締切日である。
セルの関数を見てください。

=IF(C4=1,B4-1&"/"&12&"/"&TEXT(I7,"d"),B4&"/"&C4-1&"/"&TEXT(I7,"d"))
これは前月の末だから当月が1月なら、前年の12月の末になる。違ったら当月-1の月になり、I7の月末に
なる。
セルの関数を見てください。

=IF(C4=12,B4+1&"/"&1&"/"&1,B4&"/"&C4+1&"/"&1)
当月が12月ならB4+1で年が繰り上がる、月は1月で日は1になる。違ったら月だけ+1になる。
セルの関数を見てください。
=B4&"/"&C4&"/"&1
セルの関数を見てください。

=IF(C4=1,B4-1&"/"&12&"/"&1,B4&"/"&C4-1&"/"&1)
C4が空白でなかったら、前月だから C4-1 の月が入る。
セルの関数を見てください。

=EOMONTH(I4,0)
月末を算出する関数で引数に 0 を入れることがポイントです。
セルの関数を見てください。

=IF(D6="","",C4&"月")
D6が空白でなかったら、C4と同じ月が入る。
セルの関数を見てください。

=IF(OR(C4=" ",C4=" ",C4=""),"",B4&"年")
C4が空白でなかったら、B4と同じ年が入る。
セルの関数を見てください。

=IF(D6="","","〜")
C6が空白でなかったら 1 が入る。

セルの関数を見てください。

=IF(C6="","",1&"日")
C4が空白でなかったら 1 が入る。

セルの関数を見てください。

=IF(OR(C4=" ",C4=" ",C4=""),"",C4&"月")
C4が空白でなかったらC4が入る。
セルの関数を見てください。

=IF(OR(C4=" ",C4=" ",C4=""),"",IF(C4=1,B4-1&"年",B4&"年"))

C4にスペースが入っている場合、はB6は空白、(スペースの種類と空白に対処している。)
C4が 1 なら B4-1 これは期間の前だから、C4が1月なら1ケ月前の月になるので年が
さかのぼるので一年差し引く、1でなかったら年はB4になる。
B4とC4に算出したい年月を入力すると、締切期間を自動算出す。
2. ワークシート関数による締切日の算出
  この参考では、締切日が月末になっている。

 
これは、日付基準と言うファイルである。ネットワークかどこかに置いてあって、どこからでも
このファイルにを見ると、当月が何年何月かが分かる様にする。この日付が変更されるのは、
当月のデータを来月用に更新するときだけであり、更新するファイルからこのファイルの日付を
自動で変更させればよい。締切日のあるデータ処理ファイルは、自動でこのファイルを参照して
当月が分かる。
1. 当月日付基準
  仕入の伝票処理や実績の集計には、今日が何月何日なのか、当月切りが何月なのかが、分からな
  ければならない。 各会社には、仕入や売上の締切日が存在する。仕入額や売上額は、締切日で
  その月の集計を行うが、仕入伝票や売上伝票の処理は毎日発生するものだから、締切日を過ぎて
  も来月分を継続して行わないと伝票がたまってしまうし、来月分の売上伝票も発行できない。
  締め切った数値の処理が完了するには何日間か必要である。それが終わらないと、仕入や売上の
  データを来月分用に更新することができない。当然、日付は月をまたいでしまう。
  そこで、当月と来月と言う考え方が必要になる。当月とは、締切日以前の月であり、締切以後は
  来月と言うことになる。
 
基本的なマクロの習得
日付の自動算出


実際に使っているシステムの内容で解説
  EXCEL VBA 講座