![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.2ベストアンサー
- 回答日時:
workday関数ですが、Accessにはないので、
モジュールで自作する必要があります。
まず、祝日や、盆休みなどの休日のデータを用意します。
Accessの場合、テーブルとして作った方が良いでしょう。
テーブル名 :holiday
フィールド名:data (日付型) 主キー
土日は計算できるので、土日以外の、祝日や、
振り替え休日、会社独自の休日などを登録しておきます。
次に、新規のモジュールを追加し、下記のようなソースを記述。
適当な名前で保存して下さい。
-----------------------------------------------------------
Option Compare Database
Option Explicit
'd(日付)から、c(日数)営業日後の日付を返す
Public Function WorkDay(d As Date, c As Integer)
Dim count As Integer
'初期化
WorkDay = NextWorkDay(d)
count = 0
Do While count < c
'営業日をカウントしながら進める
WorkDay = NextWorkDay(DateAdd("d", WorkDay, 1))
count = count + 1
Loop
End Function
'd(日付)以降の営業日を返す
Private Function NextWorkDay(d As Date) As Date
NextWorkDay = d
Do While IsHoliday(NextWorkDay)
NextWorkDay = DateAdd("d", NextWorkDay, 1)
Loop
End Function
'd(日付)が、土日・休日かチェック
Private Function IsHoliday(d As Date) As Boolean
If Weekday(d) = vbSunday Or Weekday(d) = vbSaturday Then
'土日ならTrue
IsHoliday = True
ElseIf IsNull(DLookup("data", "holiday", "data = #" & d & "#")) Then
'平日で、休日でなければFalse
IsHoliday = False
Else
'休日ならTrue
IsHoliday = True
End If
End Function
-----------------------------------------------------------
フォームの既定値のプロパティでは下記の様に使います。
今日から3営業日後の日付を規定値にする場合、
WorkDay(Date(),3)
Excelのworkday関数と同じような使い方です。
違いは、休日のデータを、テーブルに用意しておく点です。
venzouさん、本当にありがとうございました!!
モジュールなんて全くわかっていない自分でも、venzouの書いてある通りにやったら上手く出来ました。これも、すべてvenzouさんのおかげです。
いろいろネットで調べたのですが、教え方が高度で全くわからず、あきらめていました。venzouさんが助けてくれなければあきらめていたでしょう。
本当にありがとうございました。
No.1
- 回答日時:
どういう処理で3日後を得たいのかよく分かりませんが
簡単な方法としてはカレンダーテーブルを用意するか
独自の関数を作成するのが良いかと思います。
土日はともかくとしても祝祭日は毎年変動しますから
祝日テーブルなりは必要だと思いますよ。
例えばですが:
何か日付を入力したら
その日付+3日の日付をカレンダーテーブルに参照する
参照した日が土日や祝日扱いなら
その翌日の平日日付を返すようにすればよいかと
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- その他(Microsoft Office) エクセルの休日について教えてください。 1 2023/01/06 15:45
- その他(教育・科学・学問) なぜか毎月同じアクセス数 1 2022/09/11 00:15
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- HTML・CSS 詐欺メールがまた来ました。5月に入ってから頻度が上がってます。なぜでしょうか? 7 2023/05/08 17:04
- Excel(エクセル) 年間仕事用シフトカレンダーに、日勤 夜勤 休み に色分けをした。 4 2022/12/09 04:12
- その他(IT・Webサービス) dアカウント、ログイン等で通知等は来る? 4 2022/10/13 20:06
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- ハッキング・フィッシング詐欺 国外からのアクセスと判断されてしまっているようです。 2 2022/05/23 10:59
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
Accessで規定値に土日含まず5日前を指定したい
Access(アクセス)
-
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
Access 2010 土日祝日を除いて前日
Access(アクセス)
-
-
4
Accessで今日から5日後
その他(データベース)
-
5
アクセスで営業日を計算させる方法について
Access(アクセス)
-
6
Accessでの稼働日数計算の方法
その他(データベース)
-
7
ACCESS クエリ→フォーム フィルターをかけたデータのみエクスポートしたい
Excel(エクセル)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
「#エラー」の回避
Access(アクセス)
-
12
Access2003 クエリで、空の列は作れますか?
Access(アクセス)
-
13
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
14
アクセス エラーを数値「0」に変換するには
Access(アクセス)
-
15
どこにもフォーカスを当てたくない
Access(アクセス)
-
16
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
17
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
18
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
19
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
20
AccessからExcelのファイルを起動する
その他(データベース)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Accessの日付時刻型から日付、...
-
Excleピボットでデータのない部...
-
指定日付を起点にして最新日付...
-
VBA 別シートの同じ日付の欄に...
-
Excel→Accessへの日付データの...
-
アクセスの昇順並び替えで空白...
-
アクセスで月単位の抽出
-
accessの時間更新方法(フォーム)
-
BCPでCSV内の文字列をテーブル...
-
アクセス:既定値に土日含まず...
-
データベースで新規作成で日付...
-
ビュー定義をプログラムで動的...
-
Excel日付 0M/0D/YYYY
-
クロス集計のユニオンクエリー...
-
日付/時刻型フィールドで時刻デ...
-
アクセスで日付データの和暦表...
-
VBAでの年齢計算がうまくいきま...
-
連続値を取得するクエリ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
Excleピボットでデータのない部...
-
Access クエリで、レコードの無...
-
VBA 別シートの同じ日付の欄に...
-
Accessのデータ型の日付/時刻型...
-
Accessの日付時刻型から日付、...
-
Excel→Accessへの日付データの...
-
指定日付を起点にして最新日付...
-
BCPでCSV内の文字列をテーブル...
-
アクセスで月単位の抽出
-
アクセス:既定値に土日含まず...
-
【エクセル】指定した日付に一...
-
アクセス97のVBAで日付項目をヌ...
-
【vba】日付の形式が勝手に変わ...
-
前のレコードの合計に現レコー...
-
エクセル-過去6カ月分の合計を...
-
Accessで日付の比較がうまくい...
-
ACCESSの空白をカウントする
-
【Accessで困っています...
おすすめ情報