🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

795閲覧

VBA 現在時刻より前に条件文で一致した事を10分以内に繰り返さない記述方法

noboru79

総合スコア2

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2021/03/08 01:50

編集2021/03/08 11:16

VBA

1Dim i As Long 2Dim 時間 As Long 3省略 4 5Sub timer() 6Dim StartTime As Date: StartTime = TimeValue("08:00:00") 7Dim TimerInterval As Date: TimerInterval = TimeValue("00:01:00") 8 9If Time < StartTime Then 10 Application.OnTime StartTime, "timer" 11ElseIf Time < TimeValue("09:00:00") Then 12 Call 稼働 13 Application.OnTime Now() + TimerInterval, "timer" 141516省略 17Else 18End If 19 20End Sub 21 22Sub 稼働() 23 24For i = 1 To Worksheets.Count 25 Sheets(i).Select 26 If Range("C3").Value <= Range("C4").Value Then 27 If Range("E5").Value >= Range("E6").Value Then 28 If Range("H1").Value = "" Then 29    30   Range("H1").Value = sign 31   時間 = Cells(Rows.Count, "I").End(xlUp).Row + 1 32  Range("I" & 時間).Value = Format(Now(), "Short Time") 33Else 34End If 35Else 36End If 37Else 38End If 39 40Next 41 42End Sub

VBAでFOR文の中でIFで条件分岐させている形なのですが、1分おきにFOR文を起動させています。
このインターバル時間は変更することなく、
同じ条件を繰り返し表示させないため、あるセルを空の状態であればという条件を加えて、それ以降は表記させないようにしています。
これを10分おきに再び同条件が満たせば表示させるようにするには、どういった書き方があるでしょうか?
宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/03/08 02:14

現状のコードを提示しましょう コードは、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
guest

回答1

0

ベストアンサー

情報が少なすぎてよくわかりませんが、
ある条件を満たしたかどうかを保持するグローバル変数を持たせて、
最初はFalseで、FalseのときだけIf文に入り、If文の中でTrueにする、というのではどうでしょうか。


<追記>
追加説明を読んでもやっぱりよくわかりませんが、こんな感じですか?

VBA

1 If DateDiff("s", Range("H1").Value, Now()) > 600 Then 2 Range("H1").Value = Now()

投稿2021/03/08 02:03

編集2021/03/08 13:17
jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問