• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IF文に時間(何時から何時まで)の条件文を付けたい)

VBAを使用した時間条件文の作成方法

このQ&Aのポイント
  • VBAの知識がなくても、パソコンの設定された現在の時間を画面上に表示する方法を教えます。
  • また、その表示された時間を基に、指定の時間範囲で処理を行う条件文を作成する方法も解説します。
  • 具体的な例として、現在の時刻に応じて処理を行うIF文の命令文の作成方法を詳しく説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

通りがかりです。 >分からないのが、IF文で > 『現在時刻が12:00~14:00までの間だったら、処理Aを行なう』の > 命令文が分かりません。 この場合は  Select Caseで分岐したほうが便利でしょう Select Case Range("C1").Value Case Is < TimeSerial(12, 0, 0) MsgBox "処理A" Case Is < TimeSerial(14, 0, 0) MsgBox "処理b" Case Is < TimeSerial(16, 0, 0) MsgBox "処理c" Case Is < TimeSerial(18, 0, 0) MsgBox "処理d" End Select といった具合で考えてみてください。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sub test01() Range("C1") = Time Range("D1") = Hour(Time) Range("E1") = Minute(Time) Range("F1") = Second(Time) End Sub C1の表示形式は、別途設定すること(手作業・VBA)。 ーーー >12:00~14:00までの間だったら、処理Aを行なう セルの値を用いて比較する場合は If Range(”A1")>Range("B1") Then 処理A End If のように出来るが、 1方を固定の数値(エクセルでは時刻シリアル値、このことを質問者は判ってないかも)は(時刻)リテラル値といい、TimeSerial(j時、分、秒)で定義する方法もあるが、#を使って Sub test03() If Range("C1") = #12:05:35 PM# Then MsgBox "aaa" End If End Sub でできる。 http://www.melma.com/backnumber_170609_4062558/ 参考 これを参考に、時刻の幅の間もAND演算子を使って、やってみてください。VBAにBetween演算子は在りません。

noname#187541
noname#187541
回答No.1

こんにちは。 現在の時刻は Time で取得できます。ちなみに日付は Date で、Nowで両方が一度に取得できます。 『現在時刻が12:00~14:00までの間だったら、処理Aを行なう』は If Time >= "12:00" And Time >= "14:00" then 処理A End If とすればできます。

関連するQ&A