翌月の日付や前月の日付を算出するユーザー定義関数

スポンサーリンク

追記:2019/09/20

この記事の内容は以前に作成したもので、より適切な方法をこちらのページに記載しています。
Excel標準のワークシート関数で月の最終日を取得できる便利な関数があるのでよければご覧ください。

月の日数は一律でないので計算しにくい

日付の足し算・引き算などはExcelの中でかなり頻繁に使われる機能だと思いますが、日数が月によってバラバラなために計算が複雑になることが多いと思います。

特にスケジュール帳の作成や共有のシフト表など間違えてはいけない書類・データを作る際、時間をかけて手作業で行っている方も多いと思います。

今回はExcelなどでスケジュール表や共有シフト表を作成する際に役立つ「翌月の初日を」ユーザー定義関数を紹介します。

スポンサーリンク

当月の初日を算出するユーザー定義関数

当月の初日を算出するにはYear関数とMonth関数を使用し、下記のように設定します。

Function 当月初日(該当日 As Date) As Date

当月初日 = Year(該当日) & “/” & Month(該当日) & “/” & 1 ’①

End Function

翌月の初日を算出するユーザー定義関数

どんな日付からでも翌月の初日をすぐに算出できる関数があれば、日付の計算における複雑さは改善できると思われますので、今回私は翌月の初日を算出する関数を考えました。

作成の手順は色々パターンがありますが、今回私が考えた関数は下記の手順で翌月の初日を算出する仕様となっています。

  • ①今月(任意の指定した日の当月)1日を算出する。(当月の初日を算出するユーザー定義関数から算出)
  • ②①で算出した当月1日に31日を加算する。(翌月任意日)
  • ③②の年月の初日(1日)を算出する(翌月初日)
  • Function 翌月初日(該当日 As Date) As Date

    Dim 翌月任意日 As Date

    翌月任意日 = 当月初日(該当日) + 31 ’②
    翌月初日 = Year(翌月任意日) & “/” & Month(翌月任意日) & “/” & 1 ’③

    End Function

    前月の初日を算出するユーザー定義関数

    翌月の初日を算出するユーザー定義関数と同様の方法ですが、当月の初日を算出し、そこから1を引いた値で前月を導き出しています。(④)

    Function 前月初日(該当日 As Date) As Date

    Dim 前月任意日 As Date

    前月任意日 = 当月初日(該当日) – 1 ’④
    前月初日 = Year(前月任意日) & “/” & Month(前月任意日) & “/” & 1 ’⑤

    End Function

    おすすめ書籍 (広告)

    コメント