|
ichinose さん、おはようございます。
丁寧な返事を頂いていたのに、こちらの返信が遅くなりました。
書いていただいてサンプルコード試しました。
なるほど・・・だいぶわかってきた気がします。
>これは、「VBAのNOW()関数は、Date型で返され、
>ワークシート関数の[now()]は、Double型で返されるからだ」
>と私は認識しているですが・・・
これと、以下のサンプルコードで、だいぶ納得出来たかなあ
>Sub test()
> Dim bbb As Double
> Dim aaa As Date
> MsgBox Now()
> aaa = [now()]
> MsgBox aaa
> bbb = Now()
> MsgBox bbb
>End Sub
>さらにDate型の場合、
>Helpには、
>「0:00:00 〜 23:59:59 の範囲の時刻を表すことができます。」
>つまり、VBAのNOW()関数は、Date型なので秒単位までしか値を持ってこないのでは
>と思っています。
ようするに、データの型の問題なんですね・・・
そういうことで、ichinoseさんの上記のサンプルと同じようなもんですが
Sub test4()
Dim a As Double
Dim h As Double
a = Now()
h = [Now()]
MsgBox a & vbCr & h
End Sub
というのを試してみて、ほぼaもhも同じ形で戻ってきたので、
最初の、イメージを動かすプログラムも、
Dim r As Long
Dim t As Double
t = Now()
For r = 1 To 15
’(処理省略)
t = t + 0.0000015
Application.Wait t
Next r
で試してみました。
そしたら、ほぼ「t=[Now()]」でしたときと同じように動きました。
ただ、最初だけほんの少し飛ぶみたいな動きになってしまいました。
「t=[Now()]」だとすんなり滑り出すように動くのに・・・
同じようでいて、やっぱり違うんかな・・・
なんだか色々試してる内に、ごっちゃになってきそうになりました(^^;
でも、だいぶわかってきたかな?
どうもありがとうございました(^^)
|
|