|
ちなみにソースはこちらです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngOpeTime As Long ' 運転時間
Dim lngAveSpeed As Long ' 平均速度
' 処理開始
On Error GoTo ErrorHandler
' 運転時間取得
lngOpeTime = Sheets(MAIN_SHEET).Range("celOpeTime").Value
'---値チェック---
If Sheets(MAIN_SHEET).Range("celOpeTime").Value <> 0 Then
' 総巻長が0以下だった場合
If glngTotalLength <= 0 Then
' 総巻長 = 0の場合 -> 計算不可
'メッセージボックス出力
MsgBox "総巻長が 0(m) または 0(m)以下 のため、平均速度が算出できません。", vbInformation, "平均速度算出"
Exit Sub
End If
' 運転時間が数値入力された場合
If IsNumeric(lngOpeTime) = True Then
' 運転時間が0入力でない場合
If lngOpeTime > 0 Then
' 平均速度を算出
lngAveSpeed = glngTotalLength / lngOpeTime
' 平均速度を表示
Sheets(MAIN_SHEET).Range("celAveSpeed").Value = lngAveSpeed
→正常入力した場合、ココにくるんですが、ここで、また先頭に戻り、ずーっとloopするんです!
Exit Sub
Else
' 運転時間が0以下入力の場合 -> 計算不可
'メッセージボックス出力
MsgBox "運転時間項目には、0より大きい数値を入力して下さい。", vbInformation, "平均速度算出"
Exit Sub
End If
Else
' 運転時間が数値入力でない場合 -> 計算不可
'メッセージボックス出力
MsgBox "運転時間項目には、数値を入力して下さい。", vbInformation, "平均速度算出"
Exit Sub
End If
End If
Exit Sub
ErrorHandler:
' エラー処理
gErrMsgOutPut "Worksheet_Change", Err.Description
End Sub
|
|