• ベストアンサー

VBA 時間の表示の判定

VBAで時間の判定をしたい場合 どのようなコードを書けばよいでしょうか? 条件書式や、書式設定などの方法はたくさん載っていますが VBAで行いたいです。 具体的はA1からJ1セルにh:mmのフォーマットで時間が表示されています。 マクロを実行すると、A1からJ1の範囲内で マイナス表示のセルは赤で塗りつぶし 0:15以内なら黄色で塗りつぶし 0:15以上なら青で塗りつぶしを行いたいです。 よろしくお願いします。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

VBAの場合、日付シリアル(時刻を含む)は、例によって 「1900年1月1日を1とする実数」であらわされます。 ですので、2019/6/14 18:00:00 は 43630.75 と言う数値が セットされていて、それを表示形式で直しているだけですから、 VBAでデータを取得すると43630.75としかならないんです。 ということで、時刻を比較する場合、まずは取得した数値から 整数部分を切り離して(=A1-INT(A1)とか)、小数値で直接 チェックするか(=15/60/24=0.01041667とか)、Time関数を 使って(=TIME(0,15,1)とか)チェックするかしないと、計算 できません。 こういう原則が分かれば、あとは別に難しいことはないです。

関連するQ&A

専門家に質問してみよう