![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつも質問ばかりしてスミマセン・・・
今回は支払日付の計算について質問です。
次の様な条件で日付の表示がしたいのですが、カレンダーは月末日が月によって30日や31日2月は28日うるう年には29と末日に変動がありますよね?
その為、Accessのdateadd関数では日にちが狂ってしまうのです。
条 件:取引会社ごとに支払日が決まっています月末に締 めて30日後、40日後、50日後といった風に5日にち毎に支払日となります。
例)2/28締め40日後→4/10支払日と計算させたいのですが、dateadd関数で単純に計算すると4/9となってしまいます。これが60日後であれば本来は4/30としたいのですが、4/28となります。
AccessのVBAは使った事はないのですが、(Excelはあります)VBAででしかできないのであればその方法が知りたいです。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
「2/28締め40日後→4/10支払日」
というのは、正確に言うと
「翌々月の10日支払日」ということですよね?
(1)「n日後」のnを30で割る。
(2-1) あまり=0の場合
支払日=締め日の月+[ (1) の商] の月末
(2-2) あまり≠0の場合
支払日=締め日の月+[ (1) の商]+1の月、[あまり]日
という関数を作成すればいいんじゃないでしょうか。
Year関数、Month関数、TimeSerial関数などを使用すればできると思います。
あと、月末の求め方ですが、
(1) 月を+1、日を1とする。(TimeSerialなどを使用する。)
(2) (1)の日付を DateAdd で-1日する
で求められます。
No.2
- 回答日時:
もしかしたら、そのような計算をさせる関数があるのかもしれませんが、自分で作るとしたら、日付のDAYの部分を5で割ってその余りをDAYの部分に足すという方法なるんじゃないでしょうか?
ちょっと、ローテクですが、、作ってみました。
myDate に 2003/04/06 とはいると
getDate に 2003/04/10 と返ると思います。
すべての条件を満たしているかはわかりません。
Function getDate(myDate As String) As String
Dim strTmp(2) As String
Dim lngTmp As Long
strTmp(0) = Format(myDate, "yyyy/mm/dd")
strTmp(1) = (Mid(strTmp(0), 9, 2))
strTmp(2) = (Mid(strTmp(0), 1, 8))
lngTmp = Val(strTmp(1)) Mod 5
If 0 <> lngTmp Then
getDate = strTmp(2) & Format((Val(strTmp(1) + (5 - lngTmp))), "00")
Else
getDate = strTmp(0)
End If
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
年、月、日を分けて入力したも...
-
日付を昇順で並び替えし、空白...
-
日付を差し込み印刷で表示した...
-
Accessで日付から曜日を自動で...
-
ACCESSの自動連番について
-
Wordの日付変換ってできますか?
-
伝票番号の自動採番について
-
差し込み印刷で日付の曜日を表...
-
Wordで、ヘッダーに印刷日付を...
-
Word2010 フィールド内での和...
-
wordの日付入力の仕方について...
-
Accessのテーブルで日付...
-
【Word】 今日の「年」「月」...
-
「24日の0時」って・・・
-
Excelで1週間毎の集計(今週と...
-
エクセルのチェックボックスを...
-
VBAでエクセルシートを更新...
-
エクセルで最高値、最低値の日...
-
履歴書の日付間違いで落ちますか。
-
「時間」、「期日」、「日付」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付を差し込み印刷で表示した...
-
差し込み印刷で日付の曜日を表...
-
日付を昇順で並び替えし、空白...
-
クエリで日付型のIIF関数の使用
-
Wordで、ヘッダーに印刷日付を...
-
Accessで秒を時間で表示させる...
-
Wordの日付変換ってできますか?
-
【Tableau Desktop】文字列から...
-
日付型のテキストボックスに数...
-
日付がインポートされない
-
挿入した日付の自動更新を中止...
-
Word2010 フィールド内での和...
-
accessで残業時間計算
-
wordの日付入力の仕方について...
-
【Word】 今日の「年」「月」...
-
EXCELからACCESSへのインポート...
-
FileMaker Ver.7で2つの日付間...
-
ファイルメーカーの日付の検索
-
Accessで日付から曜日を自動で...
-
word2007で日付挿入したら翌日...
おすすめ情報