
No.5ベストアンサー
- 回答日時:
No.3の回答者です。
No.4の回答にあるチェックの影響でずれることがあるのですね。
参考になりました。
そこで、
ActiveWorkbook.Date1904 = False
Debug.Print Format(WorksheetFunction.WorkDay(Date, -1), "yyyy/mm/dd")
で期待値になるのか確認してみてはいかが。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
No.6
- 回答日時:
ご質問の通りにはしませんでしたが、確認できました。
私の記憶の範囲で、確か、日付の区切り方が、ワークシート上とVBA上では、計算の仕方が違い、VBAでは、開始日を含まない計算をするのだったと思います。それと、再帰計算が起きているように見えます。このままでは、手におえませんから、中身の分かるユーザー定義関数を作りました。祭日カウントが必要な時は、もう少し、手を加えなくてはなりません。
Sub test_Workday()
Dim a, b, d, dif As Integer
dif = -2 '日差
d = Date ' #5/11/2019# '日付
a = mWorkday(d, dif)
b = Format(WorksheetFunction.WorkDay(d, dif), "yyyy/mm/dd")
End Sub
'ユーザー定義関数(標準モジュール)
Function mWorkday(mDate As Variant, ByVal dif As Integer)
Dim sg As Long, cnt As Long
If VarType(mDate) = vbString Then
mDate = CDate(mDate)
End If
sg = Sgn(dif)
Do
mDate = mDate + sg
If Weekday(mDate, vbMonday) < 6 Then
cnt = cnt + sg
End If
Loop Until cnt = dif
mWorkday = Format(mDate, "yyyy/mm/dd")
End Function
誠にありがとうございます。
すみませんが、No.5の回答が私がやりたいことを完全に満たしていましたので今回はそちらをベストアンサーとさせていただきます。

No.2
- 回答日時:
Debug.Print Date - 1 ってやっても期待通りにならないんですかね?
ちなみにOffice365のExcelでは、最初の式でも Workday(Date - 1 , 0) でも同じ結果(2019/05/11)になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel この数式の意味を教えて頂けませんか? 5 2022/12/31 10:25
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
- Visual Basic(VBA) 【VBA】先月分の取得ができない理由が分かりません。 2 2022/04/24 11:16
- Excel(エクセル) DATE関数で指定する「日」のセルが関数の場合の対処法 5 2022/09/14 15:46
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
15%増しの計算方法
-
パーセントの計算
-
一定倍したある数を元に戻すには?
-
教えて下さい
-
ラジアン値を°′″(度・分・秒)...
-
3分2の計算教えて下さい
-
前年比の%の計算式を教えてく...
-
エクセルで関数計算後の値を数...
-
パーセンテージの出し方
-
鉛直面内の円運動に関してなの...
-
「出来型」と「出来形」の使い...
-
計算の質問なんですが、 10000×...
-
6畳間は何立方メートル?
-
Excel 計算式へ置換時にでてく...
-
何通りかの計算で 7C4 の答えが...
-
同じ時間なのに、60進と10...
-
(a+b+c)(-a+b+c)(a-b+c)+(a+b+c...
-
92人に1人を、100人あたり何人...
-
N値計算における通し柱の扱い
-
1÷無限=0ということは数(大き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
15%増しの計算方法
-
パーセントの計算
-
3分2の計算教えて下さい
-
一定倍したある数を元に戻すには?
-
前年比の%の計算式を教えてく...
-
エクセルで関数計算後の値を数...
-
教えて下さい
-
「出来型」と「出来形」の使い...
-
計算の質問なんですが、 10000×...
-
ラジアン値を°′″(度・分・秒)...
-
6畳間は何立方メートル?
-
Excelの反復計算がわかりません。
-
250gを8割と2割に分けると
-
割引の計算を教えてください。
-
2の365乗
-
3割アップとは、どうのように...
-
1+2+3+4+5+6+7+8+9+10を工夫し...
-
指数計算 2^n-1
-
Excel 計算式へ置換時にでてく...
-
何通りかの計算で 7C4 の答えが...
おすすめ情報
早速のご確認ありがとうございます。
はい、上記の結果になることを期待しているのですが、2番目の関数の結果が
2011/05/07
になってしまう、という事象です。
ご確認ありがとうございます。
今外出中ですぐに試せないため、戻り次第確認してみます。
ありがとうございます。
マイナスの時間を表示する必要があり、チェック入れています。
外したところ期待通りの動作となりました。
ありがとうございます。
1904年から計算するのチェックは付けておく必要がありましたので、計算前後でoff/onすることでまさに私がやりたかったことが実現できました。