マクロで分岐をさせる方法
下記の記録マクロでWith→End With 間にIFで分岐を試みたのですが
エラーになります。どうすれば出来るのか伝授をお願いします。
マクロは初心者です。
Dim hensuh(2) As Integer
Dim dekiru As Long
Dim kinek As Long
Dim uineu As Long
Dim myTime As Date
Dim flg As Boolean
Sub OnTimeSamp1()
Application.OnTime EarliestTime:=TimeValue("09:00:00"), Procedure:="Ontime_Set" '記録開始
Application.OnTime EarliestTime:=TimeValue("11:00:00"), Procedure:="Ontime_Reset" '記録終了
End Sub
Sub Ontime_Set() 'トグルになっている
If flg = False Then
flg = True
myTime = Now + TimeSerial(0, 0, 1)
ElseIf flg = True Then
flg = False
Else
Exit Sub
End If
If Range("A1").Value = "" Then
Range("A1").Value = Format(Now, "hh:mm:ss") '時間記録(スタート)
End If
Application.OnTime EarliestTime:=myTime, _
Procedure:="my_Procedure", Schedule:=flg
If flg = False Then
myTime = 0
End If
End Sub
Sub my_Procedure()
Worksheets("kirokuyou").Activate 'ワークシートをアクティブにする。(記録中別のワークシートを開けた場合そこに記録されてしまうのを防ぐ)
With Range("A65536").End(xlUp).Offset(1)
.Value = Format(Now, "yyyy:mm:dd:hh:mm:ss") '時間記録
.Offset(, 1).Value = Range("S3").Value 'S3 の値
.Offset(, 2).Value = Range("T3").Value 'T3 の値
.Offset(, 3).Value = Range("U3").Value 'U3 の値
.Offset(, 4).Value = Range("V3").Value 'V3 の値
dekiru = Range("V3").Value
Range("V6").Value = dekiru
kinek = Range("T22").Value
Range("T18").Value = kinek
uineu = Range("U22").Value
Range("U18").Value = uineu
'IF S17 >= 120 Then
'hensuh(0) = Range("S17").Value ←変数に代入後、分岐させたいのですがエラーになる
'Elseif S17 >= 110 Then
'hensuh(1) = Range("S17").Value ←変数に代入後、分岐させたいのですがエラーになる
'Elseif S17 >= 100 Then
'hensuh(2) = Range("S17").Value ←変数に代入後、分岐させたいのですがエラーになる
'End If
flg = False
myTime = 0
End With
Call Ontime_Set
End Sub
Sub Ontime_Reset()
'タイマーリセット
On Error Resume Next
Application.OnTime EarliestTime:=myTime, _
Procedure:="my_Procedure", Schedule:=False
If Err.Number > 0 Then
MsgBox "OnTime設定はされていません。", 64
Err.Clear
flg = False
Else
MsgBox myTime & "の設定は解除されました。", 64
flg = False
myTime = Empty
End If
End Sub
お礼
無事に更新させることができました。 返信ありがとうございます。