俺の開発研究所

Ruby on Rails、Linux、Windowsを中心にIT技術系の備忘録とか。よく忘れるので。

*

VBAで休日・祝日判定を行う関数を自作する

      2014/09/11

VBAで日付が平日のみ処理を行いたい場合や、休日・祝日のみ処理を行いたい場合などがあると思います。

そんな時には、休日・祝日判定を行う関数を作っておけば、いろいろな場所で呼び出して使用できるので便利。

なので、とりあえず作ってみた。

スポンサード リンク

祝日を判定する関数

まずは、祝日の判定から。

祝日を判定するには、どこかシートに祝日である日付を一覧化したものを用意しておくと便利。

今回は、「祝日」という名前のシートを作成し、A列に数年先までの祝日の日付を入力した。

作成したシートは、そのシートタブを右クリックし、「非表示」を選択し、見えないようにしておく方がスマートかなと。

で、祝日を判定する関数は以下のようになった。

「祝日」シートのA列を検索して、日付があれば祝日と判定する。

なお、VBAの関数(Function)は、戻り値が関数名の変数の値となる。

今回の場合は、関数名「shukujitu」の変数「shukujitu」に、戻り値であるTrue/Falseを入れてやる。

休日を判定する関数

続いて、休日を判定する。

休日を判定するには、Weekday関数を使用して、曜日番号を取得し、その番号によって休日かどうかを判定する。

曜日番号は以下のようになっているので、7(土曜日)、1(日曜日)の場合が休日となる。

  • 1…日曜日
  • 2…月曜日
  • 3…火曜日
  • 4…水曜日
  • 5…木曜日
  • 6…金曜日
  • 7…土曜日

で、休日を判定する関数は以下のようになった。

呼出元

最後に、以下のように祝日判定関数、休日判定関数を呼び出せばOK。

 - VBA