Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8644 / 13646 ツリー ←次へ | 前へ→

【32062】経過日付の計算方法 勝子 05/12/5(月) 17:17 質問[未読]
【32065】Re:経過日付の計算方法 inoue 05/12/5(月) 17:23 発言[未読]
【32066】Re:経過日付の計算方法 かみちゃん 05/12/5(月) 17:25 発言[未読]
【32122】Re:経過日付の計算方法 勝子 05/12/6(火) 17:46 お礼[未読]

【32062】経過日付の計算方法
質問  勝子  - 05/12/5(月) 17:17 -

引用なし
パスワード
   すみません、またお世話にならせてください
月が替わったときの日付の経過日付の計算方法を教えてください。
同一月内だと下記の計算式で動いていたのですが、月が替わったら下記の式では無理になってしまいました。
”☆☆”の所で今日ー昨日と言う計算をさせているのです。

If CLng(Mid(Range("F1"), 1, 2)) = 20 Then
  Day_cnt11 = CLng(Mid(Range("F1"), 3, 2)) * 10000  '基準日(F1)の年を数値化
  Day_cnt12 = CLng(Mid(Range("F1"), 6, 2)) * 100   '基準日(F1)の月を数値化
  Day_cnt13 = CLng(Mid(Range("F1"), 9, 2))      '基準日(F1)の日を数値化
Else
  Day_cnt11 = CLng(Mid(Range("F1"), 1, 2)) * 10000  '基準日(F1)の年を数値化
  Day_cnt12 = CLng(Mid(Range("F1"), 4, 2)) * 100   '基準日(F1)の月を数値化
  Day_cnt13 = CLng(Mid(Range("F1"), 7, 2))      '基準日(F1)の日を数値化
End If

  Day_cnt1 = Day_cnt11 + Day_cnt12 + Day_cnt13    '合算して年月日(yymmdd型)を数字化する
  
  Day_cnt2 = .Cells(xa, 3) - 20000000         '見るファイルデータの年月日(yymmdd型)を数字化する
  
☆☆ Day_cnt = Day_cnt1 - Day_cnt2            '基準日とデータの差を出す。

例)”☆☆”の計算式に当てはめると
基準日を11/28とする。見に行くファイルの日付を11/25とする
   051128 ― 051125= 3 となればOK

基準日を12/1とする。見に行くファイルの日付を11/30とする
   051201-051130=71   となってしまうんです。


よろしくお願いします

【32065】Re:経過日付の計算方法
発言  inoue E-MAILWEB  - 05/12/5(月) 17:23 -

引用なし
パスワード
   日付型について勉強して下さい。

日付は6桁や8桁の数字並びではありません。
> 051201-051130=71 となってしまうんです。
Dim Day_cnt1 As Date, Day_cnt2 As Date
Day_cnt1 = DateValue("2005/12/1")
Day_cnt2 = DateValue("2005/11/30")
MsgBox CInt(Day_cnt1 - Day_cnt2)
ならどうですか。

【32066】Re:経過日付の計算方法
発言  かみちゃん  - 05/12/5(月) 17:25 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>例)”☆☆”の計算式に当てはめると
>基準日を11/28とする。見に行くファイルの日付を11/25とする
>   051128 ― 051125= 3 となればOK
>
>基準日を12/1とする。見に行くファイルの日付を11/30とする
>   051201-051130=71   となってしまうんです。

なさりたいことがよくわかりませんが、
DateDiff関数ではいけないのでしょうか?
 MsgBox DateDiff("d", "2005/11/25", "2005/11/28")
これを実行すると、「3」と表示されますけど。

 MsgBox DateDiff("d", "2005/11/30", "2005/12/01")
これを実行すると、「1」と表示されますけど。

【32122】Re:経過日付の計算方法
お礼  勝子  - 05/12/6(火) 17:46 -

引用なし
パスワード
   inoueさん、かみちゃん
ありがとうございました。

お二人のご意見を参考にしながら何とか
経過日付の計算を完成いたしました。


ありがとうございました

8644 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free