|
▼dragon さん:
こんばんわ
もう見てないかな?
>の中で If Range("A1").Value > mxv Then の部分でエラー”型が一致しません”と返ります。
>どのように修復すればいいのでしょうか?
たぶん、A1セルに数字以外の値(空白も含めて)が入ってることが原因でしょう。
よく考えたら、ザラ場外では数字は入らないですね^^
下記のようにしてみましたがどうでしょう?
>お教えください。また、時刻も表示する場合、標準モジュルで
>とすればいいのでしょうか?
惜しいです、変数ntm は関数SetProc 内でしか使えないローカル変数です。
変数ntm を関数GetVal に引数として渡すか、グローバル変数にしてやる必要があります。
下記ではグローバル変数にしてみました。
※未実行です、間違ってたらすいません。
'シートモジュール
Private Sub Worksheet_Calculate()
If IsNumeric(Range("A1").Value) = False Then Exit Sub
If numflg = False Then
stv = Range("A1").Value
mxv = Range("A1").Value
mnv = Range("A1").Value
numflg = True
End If
If Range("A1").Value > mxv Then
mxv = Range("A1").Value
ElseIf Range("A1").Value < mnv Then
mnv = Range("A1").Value
End If
edv = Range("A1").Value
End Sub
'標準モジュール
Public stv As Long, edv As Long, mxv As Long, mnv As Long, nrow As Long
Public ntm As Date
Public numflg As Boolean
Sub test()
Range("A2").Value = "時刻"
Range("B2").Value = "始値"
Range("C2").Value = "高値"
Range("D2").Value = "安値"
Range("E2").Value = "終値"
nrow = 3
Call SetProc
End Sub
Function SetProc()
ntm = Time()
numflg = False
If ntm >= TimeValue("09:00:00") And ntm <= TimeValue("15:00:00") Then
Application.OnTime ntm + TimeValue("00:20:00"), "GetVal"
Else
Application.OnTime TimeValue("09:00:00"), "GetVal"
End If
End Function
Function GetVal()
Cells(nrow, 1).Value = ntm & " 〜 " & ntm + TimeValue("00:20:00")
Cells(nrow, 2).Value = stv
Cells(nrow, 3).Value = mxv
Cells(nrow, 4).Value = mnv
Cells(nrow, 5).Value = edv
nrow = nrow + 1
Call SetProc
End Function
P.S.
時間の経ったスレに質問を入れるより、新しくスレ立てて
ここのリンクを貼るようにした方が回答は付きやすいですよ^^
|
|