Excel-VBA 祝日除いて営業日を計算するマクロ-WorkDay関数

2019/11/29

プログラム

t f B! P L
Excel VBAマクロ。今回は
祝日除いて営業日を計算するマクロ-WorkDay関数
を示す。

■Excel-VBA 祝日除いて営業日を計算するマクロ-WorkDay関数

Sub sample19()
 Dim ws1 As Worksheet
 Set ws1 = Worksheets("祝日")
 Dim buf As Date
    buf = WorksheetFunction.WorkDay(Date, -5, ws1.Range("A1:A10"))
Worksheets("部品表").Activate
    Cells(1, 1).AutoFilter Field:=19, Criteria1:=">=" & buf
End Sub
※[2.~4.] 変数宣言とセット。
※[5.] WorkDay関数。今日「Date」から-5過去日格納。
その際、土日と「祝日」シートの「A1:A10」日付を
営業日から除く。
※[6.~7.] 「部品表」シート19列目(S列)
「buf」以上の数値、つまり未来日でフィルタする。

■マクロ実行対象

「部品データ_191128.xlsx」の「部品表」シート。

「部品データ_191128.xlsx」の「祝日」シート。

■マクロ実行結果

実行すると、今日の日付から
土日と祝日(A1:A10指定)を除く
-5過去日の日付より未来日でフィルタ抽出される。

【例】今日が11月29日の場合、
11月22日を含む未来日がフィルタ抽出される。

■あとがき

今回はExcel VBAマクロ。
祝日除いて営業日を計算するマクロ-WorkDay関数
を示した。

祝日シートは「A:A」としてA列全体指定する
方法もあるが、「A1:A10」のように範囲指定した方が
データ処理速度がはやい。
データ数量が十万単位の場合、
処理時間差が大きくなる。

また、LibreOfficeでは「WorksheetFunction」マクロが
うまく動作しないので使えなかった。
プログラムでなく、
シートに直接記述するWorkDay関数は使用できる。
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ