トップ回答者
WIn7 + vb6 で DateAddを使用すると実行時エラー5

質問
回答
-
exe ではエラーにならないのですね。
VB6 の IDE は Windows7 ではサポートされていませんので、
何か問題があってもどうしようもないかもしれないです。
Windows Vista®、 Windows Server 2008®、および Windows 7 における
Visual Basic 6.0 のサポートについて
http://msdn.microsoft.com/ja-jp/vbasic/cc707268.aspx -
検証お疲れ様です。
結果からすると、VBA(MSVBVM60.DLL)が壊れているようにも思います。
ランタイムは更新パックなどで更新できるので、入れてみられてはいかがでしょうか「Windows Vista<sup>®</sup>、 Windows Server 2008<sup>®</sup>、および Windows 7 における Visual Basic 6.0 のサポートについて」http://msdn.microsoft.com/ja-jp/vbasic/cc707268.aspx
すべての返信
-
以下のコードで確認してみましたが、私のところではエラーは発生しませんでした。
(Windows7 に最初から入っている VB のランタイム上で確認しました。)
(補足追記:Windows7 には VB6 の開発環境は入れていないので、別 OS で作成した exe ファイルを Windows7 で実行しました。)
Dim d As Date
d = DateSerial(2010, 8, 3)
d = DateAdd("yyyy", 1, d)
d = DateAdd("q", 1, d)
d = DateAdd("m", 1, d)
d = DateAdd("y", 1, d)
d = DateAdd("d", 1, d)
d = DateAdd("w", 1, d)
d = DateAdd("ww", 1, d)
d = DateAdd("h", 1, d)
d = DateAdd("n", 1, d)
d = DateAdd("s", 1, d)
OS の日付書式の設定による問題かと考えたのですが、その場合は別のエラーメッセージが表示されますので、そうではないですね。
どのようなコード(引数値)でエラーが発生するのでしょうか?- 編集済み TH01 2010年8月3日 4:54 補足の追記
-
exe ではエラーにならないのですね。
VB6 の IDE は Windows7 ではサポートされていませんので、
何か問題があってもどうしようもないかもしれないです。
Windows Vista®、 Windows Server 2008®、および Windows 7 における
Visual Basic 6.0 のサポートについて
http://msdn.microsoft.com/ja-jp/vbasic/cc707268.aspx -
TH01さん ありがとうございます。
For Counter = 1 To 6
Command1(Counter).Caption = DateAdd("d", Counter, Date)
Nextのようなコードです!!
ボタン3つと実行ボタン1つ置いて試しましたが、普通にデバッグできました。
他に原因がなさそうですか?【環境】
OS:Microsoft Windows 7 Ulitimate x64 [Version 6.1.7600]
VS:Visual Basic 6(SP6)【検証したフォーム】form1.frm
VERSION 5.00 Begin VB.Form Form1 Caption = "Form1" ClientHeight = 3030 ClientLeft = 120 ClientTop = 450 ClientWidth = 4560 LinkTopic = "Form1" ScaleHeight = 3030 ScaleWidth = 4560 StartUpPosition = 3 'Windows の既定値 Begin VB.CommandButton Command2 Caption = "実行" Height = 615 Left = 3120 TabIndex = 3 Top = 1080 Width = 1455 End Begin VB.CommandButton Command1 Caption = "Command1" Height = 495 Index = 2 Left = 120 TabIndex = 2 Top = 1680 Width = 1695 End Begin VB.CommandButton Command1 Caption = "Command1" Height = 495 Index = 1 Left = 120 TabIndex = 1 Top = 1080 Width = 1695 End Begin VB.CommandButton Command1 Caption = "Command1" Height = 495 Index = 0 Left = 120 TabIndex = 0 Top = 480 Width = 1695 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Private Sub Command2_Click() For i = 1 To Command1.Count - 1 Command1(i).Caption = DateAdd("d", i, Date) Next End Sub
-
ボタン3つと実行ボタン1つ置いて試しましたが、普通にデバッグできました。
他に原因がなさそうですか?
最小コードで実行しても、やはり同様のエラーが発生しますか?
名前がぶつかったりしていませんか?真面目に型変換しても同様の結果ですか?Private Sub Command2_Click()
Dim Counter As Integer
For Counter = 1 To Command1.Count - 1
Command1(Counter).Caption = CStr(DateAdd("d", Counter, DateTime.Date()))
Next
End Sub -
TH01さんのコード
Dim d As Date
d = DateSerial(2010, 8, 3)
d = DateAdd("yyyy", 1, d)
d = DateAdd("q", 1, d)
d = DateAdd("m", 1, d)
d = DateAdd("y", 1, d)
d = DateAdd("d", 1, d)
d = DateAdd("w", 1, d)
d = DateAdd("ww", 1, d)
d = DateAdd("h", 1, d)
d = DateAdd("n", 1, d)
d = DateAdd("s", 1, d)d = DateAdd("yyyy", 1, d)だけはエラーでませんでした。
以外は、全てエラーです。
-
検証お疲れ様です。
結果からすると、VBA(MSVBVM60.DLL)が壊れているようにも思います。
ランタイムは更新パックなどで更新できるので、入れてみられてはいかがでしょうか「Windows Vista<sup>®</sup>、 Windows Server 2008<sup>®</sup>、および Windows 7 における Visual Basic 6.0 のサポートについて」http://msdn.microsoft.com/ja-jp/vbasic/cc707268.aspx