質問するログイン新規登録

質問編集履歴

2

空のセルの条件分岐を入れる際、セルの列が重なっていたため、Iに変えました。

2021/03/08 11:16

投稿

noboru79
noboru79

スコア2

title CHANGED
File without changes
body CHANGED
@@ -29,8 +29,8 @@
29
29
  If Range("H1").Value = "" Then
30
30
     
31
31
     Range("H1").Value = sign
32
-    時間 = Cells(Rows.Count, "H").End(xlUp).Row + 1
32
+    時間 = Cells(Rows.Count, "I").End(xlUp).Row + 1
33
-  Range("H" & 時間).Value = Format(Now(), "Short Time")
33
+  Range("I" & 時間).Value = Format(Now(), "Short Time")
34
34
  Else
35
35
  End If
36
36
  Else

1

具体的コードを書き、詰まっている点を書きました。

2021/03/08 11:16

投稿

noboru79
noboru79

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- VBA 現在時刻より前に条件文で一致した事を繰り返さないするための書き教えて下さい。
1
+ VBA 現在時刻より前に条件文で一致した事を10分以内に繰り返さない記述
body CHANGED
@@ -1,4 +1,49 @@
1
+ ```VBA
2
+ Dim i As Long
3
+ Dim 時間 As Long
4
+ 省略
5
+
6
+ Sub timer()
7
+ Dim StartTime As Date: StartTime = TimeValue("08:00:00")
8
+ Dim TimerInterval As Date: TimerInterval = TimeValue("00:01:00")
9
+
10
+ If Time < StartTime Then
11
+ Application.OnTime StartTime, "timer"
12
+ ElseIf Time < TimeValue("09:00:00") Then
13
+ Call 稼働
14
+ Application.OnTime Now() + TimerInterval, "timer"
15
+
16
+
17
+ 省略
18
+ Else
19
+ End If
20
+
21
+ End Sub
22
+
23
+ Sub 稼働()
24
+
25
+ For i = 1 To Worksheets.Count
26
+ Sheets(i).Select
27
+ If Range("C3").Value <= Range("C4").Value Then
28
+ If Range("E5").Value >= Range("E6").Value Then
29
+ If Range("H1").Value = "" Then
30
+    
31
+    Range("H1").Value = sign
32
+    時間 = Cells(Rows.Count, "H").End(xlUp).Row + 1
33
+  Range("H" & 時間).Value = Format(Now(), "Short Time")
34
+ Else
35
+ End If
36
+ Else
37
+ End If
38
+ Else
39
+ End If
40
+
41
+ Next
42
+
43
+ End Sub
44
+ ```
1
- VBAでFOR文の中でIFで条件分岐させている形なのですが、1分おきにFOR文を起動させているので、
45
+ VBAでFOR文の中でIFで条件分岐させている形なのですが、1分おきにFOR文を起動させています。
2
- 同じ条件を繰り返し表示させている状態で
46
+ このインターバル時間は変更ることなく、
47
+ 同じ条件を繰り返し表示させないため、あるセルを空の状態であればという条件を加えて、それ以降は表記させないようにしています。
3
- これを1満たした条件表示させないようにするには、どういった書き方があるでしょうか?
48
+ これを10おき再び同条件が満たせば表示させようにするには、どういった書き方があるでしょうか?
4
49
  宜しくお願いします。