Excel VBA質問箱 IV

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

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


27434 / 76732 ←次へ | 前へ→

【54617】Re:ユーザーフォームでの計算結果の転記
発言  Jaka  - 08/3/24(月) 16:22 -

引用なし
パスワード
   >Me.TextBox4.Value = Application.Evaluate("DATEDIF(""" _
>   & CDate(.Value) & """,TODAY(),""Y"")")

>End With →ここまでで、歳のTextBox4に年齢の値が計算されていました。
>End Sub

う〜ん。
いまいち、CDate(.Value)の意味が解らないんですけど???
なぜ、日付に戻す必要があるのでしょうか?
このセルは、文字列だからわざわざ日付の直しているのでしょうか?

どんな風に入力されているのかわからないけど、
CDate(.Value)
だとまずいと思いますよ。

たとえば、

Sub だめ1()
  Range("A1").NumberFormatLocal = "G/標準"
  Range("A1") = "2006/2/9"
  MsgBox Application.Evaluate("DATEDIF(""" _
   & Range("A1").Value & """,TODAY(),""Y"")")
End Sub

Sub だめ2()
  Range("A2").NumberFormatLocal = "@"
  Range("A2") = "2006/2/9"
  MsgBox Application.Evaluate("DATEDIF(""" _
   & CDate(Range("A2").Value) & """,TODAY(),""Y"")")
End Sub

Sub OK1()
  Range("A1").NumberFormatLocal = "G/標準"
  Range("A1") = "2006/2/9"
  MsgBox Application.Evaluate("DATEDIF(""" _
   & Format(Range("A1").Value, "yyyy/m/d") & """,TODAY(),""Y"")")
End Sub

Sub OK2()
  Range("A2").NumberFormatLocal = "@"
  Range("A2") = "2006/2/9"
  MsgBox Application.Evaluate("DATEDIF(""" _
   & Range("A2").Value & """,TODAY(),""Y"")")
End Sub

それとね。
Date型の変数は、コントロールパネルの地域オプションの
短い方の設定に応じて結果が変わるから注意した方が良いです。
場合によってアメ交方式で扱われるからこれも注意。
西暦は、きちんと4桁で。
下記で望みの結果が返ります?

Dim ddn As Date
ddn = Date
MsgBox ddn

2 hits

【54606】ユーザーフォームでの計算結果の転記 Regina 08/3/24(月) 1:10 質問
【54608】Re:ユーザーフォームでの計算結果の転記 ichinose 08/3/24(月) 8:45 発言
【54617】Re:ユーザーフォームでの計算結果の転記 Jaka 08/3/24(月) 16:22 発言
【54618】Re:ユーザーフォームでの計算結果の転記 VBWASURETA 08/3/24(月) 17:28 質問
【54619】Re:ユーザーフォームでの計算結果の転記 VBWASURETA 08/3/24(月) 17:53 発言
【54620】Re:ユーザーフォームでの計算結果の転記 VBWASURETA 08/3/24(月) 18:10 発言
【54625】ユーザーフォームでの計算結果の転記 Regina 08/3/24(月) 23:25 発言
【54631】Re:ユーザーフォームでの計算結果の転記 VBWASURETA 08/3/25(火) 9:06 回答
【54632】Re:ユーザーフォームでの計算結果の転記 VBWASURETA 08/3/25(火) 9:13 発言
【54673】Re:ユーザーフォームでの計算結果の転記 Regina 08/3/25(火) 21:46 発言

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