Excel VBA質問箱 IV

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

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


8198 / 13644 ツリー ←次へ | 前へ→

【34661】日付の加算で教えてください HotCafe 06/2/9(木) 14:54 質問[未読]
【34663】Re:日付の加算で教えてください Kein 06/2/9(木) 15:07 回答[未読]
【34666】Re:日付の加算で教えてください わさび 06/2/9(木) 15:36 発言[未読]
【34669】Re:日付の加算で教えてください HotCafe 06/2/9(木) 16:21 お礼[未読]

【34661】日付の加算で教えてください
質問  HotCafe  - 06/2/9(木) 14:54 -

引用なし
パスワード
   DateValue()を使い次の式で日付の加算を試みましたが旨くいきません。

For I = 1 to 5
DateValue(日付)=DateValue(日付)+1
MsgBox Str(DateValue(日付))
Next I

で、初めにInputBoxで例えば”1/25”を入力するとMsgBoxでは
ずっと2006/01/26が表示されて、加算されません。

どうしたら旨く日にちの加算をさせることが出来るんでしょうか?

よろしくお願いします。

【34663】Re:日付の加算で教えてください
回答  Kein  - 06/2/9(木) 15:07 -

引用なし
パスワード
   InputBoxの値が、正しく日付型であることが確認できれば、
そのまま整数を足しこんでいくだけです。こんな感じです。

Sub MyDay_Add()
  Dim i As Integer
  Dim MyD As Date
 
  MyD = Application _
  .InputBox("日付を yyyy/m/d の書式で入力して下さい", Type:=1)
  If MyD = False Then Exit Sub
  For i = 1 To 5
   MsgBox Format(MyD + i, "yyyy/m/d")
  Next i
End Sub

【34666】Re:日付の加算で教えてください
発言  わさび  - 06/2/9(木) 15:36 -

引用なし
パスワード
   こんにちは。

>For I = 1 to 5
 DateValue(日付)=DateValue(日付)+1 ←ここが「1」じゃなくて「I」なのでは?
> MsgBox Str(DateValue(日付))
>Next I

「I」がどこにも使われてないですよね。

【34669】Re:日付の加算で教えてください
お礼  HotCafe  - 06/2/9(木) 16:21 -

引用なし
パスワード
   >>Keinさん

アドバイスをありがとうございました。
参考にさせていただきます。

DateAdd関数を使っても思ったような加算が出来ることが
わかりました。

わさび さん、

どうもありがとうございます。
ご指摘の点は確かに、1をIにすれば日付が加算されました。

ただ、For....Nextはこの場合5回繰り返すわけですが、
例えば、J=J+1の場合、5回ループするとJは5となります
(初期値J=0の場合)、
DateValue(日付)の場合は加算はされないのですね。


>>For I = 1 to 5
> DateValue(日付)=DateValue(日付)+1 ←ここが「1」じゃなくて「I」なのでは?
>> MsgBox Str(DateValue(日付))
>>Next I
>
>「I」がどこにも使われてないですよね。

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