祝日除いて営業日を計算するマクロ-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」以上の数値、つまり未来日でフィルタする。
その際、土日と「祝日」シートの「A1:A10」日付を
営業日から除く。
※[6.~7.] 「部品表」シート19列目(S列)
「buf」以上の数値、つまり未来日でフィルタする。
■マクロ実行対象
「部品データ_191128.xlsx」の「部品表」シート。■マクロ実行結果
実行すると、今日の日付から
土日と祝日(A1:A10指定)を除く
-5過去日の日付より未来日でフィルタ抽出される。
【例】今日が11月29日の場合、
11月22日を含む未来日がフィルタ抽出される。
祝日除いて営業日を計算するマクロ-WorkDay関数
を示した。
祝日シートは「A:A」としてA列全体指定する
方法もあるが、「A1:A10」のように範囲指定した方が
データ処理速度がはやい。
データ数量が十万単位の場合、
処理時間差が大きくなる。
また、LibreOfficeでは「WorksheetFunction」マクロが
うまく動作しないので使えなかった。
プログラムでなく、
シートに直接記述するWorkDay関数は使用できる。
以上。
土日と祝日(A1:A10指定)を除く
-5過去日の日付より未来日でフィルタ抽出される。
【例】今日が11月29日の場合、
11月22日を含む未来日がフィルタ抽出される。
■あとがき
今回はExcel VBAマクロ。祝日除いて営業日を計算するマクロ-WorkDay関数
を示した。
祝日シートは「A:A」としてA列全体指定する
方法もあるが、「A1:A10」のように範囲指定した方が
データ処理速度がはやい。
データ数量が十万単位の場合、
処理時間差が大きくなる。
また、LibreOfficeでは「WorksheetFunction」マクロが
うまく動作しないので使えなかった。
プログラムでなく、
シートに直接記述するWorkDay関数は使用できる。
以上。