エクセルの時間ですが
15分起きにタイマーアクションを作っています。
タイマーがセットアップされたら(実行ではありません)
セットアップされた時間をセルに書き出しています。エラーログがわりです。
その内容が
2015/4/28 23:15
2015/4/28 23:30
2015/4/28 23:45
2015/4/28 0:00
2015/4/29 0:15
2015/4/29 0:30
で、28日の 0時は 29日の 0時 でないとおかしいのですが、28日です
当然 0:00時の 作業は 行われませんでした。
変数は
Public インターバル As Variant
Public 反復時刻 As Variant です。以上は実行時の状態です
で、今日 下記を作って実行(実行時も 同じロジックです。Debugが無いだけ)
反復時刻 = Date + TimeValue("23:30:00")
Debug.Print 反復時刻
インターバル = TimeValue("00:15:00")
Debug.Print インターバル
反復時刻 = 反復時刻 + インターバル
Debug.Print 反復時刻
反復時刻 = 反復時刻 + インターバル
Debug.Print 反復時刻
Exit Sub
これで、
2015/04/29 23:30:00
0:15:00
2015/04/29 23:45:00
2015/04/30
2015/04/30 0:15:00
45分の次、日付は 1日繰り上がったのですが、時間がない
で、
反復時刻 = Date + TimeValue("23:30:01")
Debug.Print 反復時刻
インターバル = TimeValue("00:15:00")
Debug.Print インターバル
反復時刻 = 反復時刻 + インターバル
Debug.Print 反復時刻
反復時刻 = 反復時刻 + インターバル
Debug.Print 反復時刻
反復時刻 = 反復時刻 + インターバル
Debug.Print 反復時刻
2015/04/29 23:30:01
0:15:00
2015/04/29 23:45:01
2015/04/30 0:00:01
2015/04/30 0:15:01
1秒で 変数は 保たれる。現実的解決方法としては、有効ではあるのですが・・・
イマイチな気が
Variant が まずいのでしょうか? Date でも 同じでした。
No.1ベストアンサー
- 回答日時:
Debug.Print 反復時刻
がまずいですね。
たぶんVBAの仕様だと思いますが、日付型をPrintで表示するとき、時刻が0:00:00の場合は日付だけ表示して時刻は表示しないようになっているんでしょう。
常に時刻も表示したいなら、Format関数で書式を指定してください。
Debug.Print Format(反復時刻, "yyyy/mm/dd h:nn:ss")
恐縮です。
お説の通りでした・・・
でも、ホンチャンの 0:00 で その日の 0:00 に成ってしまう件が、日付が戻る件が 解決しません。何かお気づきは有りませんでしょうか
下が 本チャンのコードです。
If Format(反復時刻, "hh:mm:ss") > Format("15:14:00", "hh:mm:ss") And Format(反復時刻, "hh:mm:ss") < Format("16:30:00", "hh:mm:ss") Then
反復時刻 = Date + TimeValue("16:45:00")
Else
反復時刻 = 反復時刻 + インターバル
End If
If Format(反復時刻, "yyyy/mm/dd" & " " & "hh:mm:ss") < Format(終了時刻, "yyyy/mm/dd" & " " & "hh:mm:ss") Then '終了時刻になったら終わる
待ち時間 = DateAdd("s", 20, 反復時刻)
On Error Resume Next
Application.OnTime 反復時刻, "orgdata.funjob", , False
On Error GoTo 0
Application.OnTime 反復時刻, "orgdata. funjob ", 待ち時間
tim = orgdata.Cells(100, 10).End(xlUp).Row + 1
orgdata.Cells(tim, 10) = 反復時刻 ' 開始時刻 '
End If
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 携帯型ゲーム機 D×2メガテンのソシャゲで「ベルセルクコラボ」復刻に伴い「グリフィス」が初配布されましたが、いつかま 1 2023/05/02 14:05
- Excel(エクセル) Excel について <TIMEVALUE> 3 2022/10/20 15:57
- その他(交通機関・地図) シンプルピーチで予約した往復の券を買いました。 復路のみ、時刻が変更されたみたいなのですが、この場合 2 2022/08/24 23:16
- 会社・職場 仕事の部下のこと 部下が前日に仕事の残業で遅くなり近くのビジネスホテルに泊まったとのこと、家に帰って 4 2022/04/29 13:31
- バス・高速バス・夜行バス 夜行バスで、往復で予約が出来る時間が新聞に乗っていたのですが行きの便と帰りの便(新聞に載ってた時刻と 3 2022/09/08 10:34
- ルーター・ネットワーク機器 Linkstation のスリープタイマー設定方法がわかりにくい 1 2023/01/07 13:34
- イベント・祭り コロナ禍で復活したイベント 1 2022/04/17 13:04
- アイドル・グラビアアイドル 70年代、80年代、90年代のB級女性アイドルの復刻版CDを教えて下さい、当時あまり話題にならなかっ 1 2022/05/07 13:43
- Windows 10 システムの復元ポイントにChecklfnstallerlsBusy 1 2022/08/22 02:23
- ルーター・ネットワーク機器 Linkstation(NAS)がスリープから復帰しない 4 2023/01/10 16:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日より前の書き方 マクロ
-
DataGridViewでyyyy/MM/dd
-
【Excel VBA】条件に合った行の...
-
Eclipseの対応する括弧の強調表...
-
ユーザーフォームのラベルに日...
-
「eclipseで作るカレンダー(ス...
-
システム日付とは?
-
DataGridViewの和暦表示について
-
VisualBasic6.0のFormat関数で...
-
テキストボックスに今日の日付...
-
エクセルのVBAで日付を検索し転...
-
エクセルのユーザーフォームに...
-
【VBA】土日をスキップして日付...
-
VBA 日付、未来の日付はエラー...
-
<Access>2つの抽出条件が合致...
-
VBAで日付入力しているのですが
-
ExcelVBAでSQLサーバの日付時刻...
-
g08のロック画面の日付表示の変更
-
JSPからYYYYMMDDで日付入力する
-
Googleフォームで選択肢に応じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
ユーザーフォームのラベルに日...
-
VBAの質問になります 行の非表示
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
DataGridViewでyyyy/MM/dd
-
3人のじゃんけんのプログラム
-
システム日付とは?
-
コンボボックスに日付を表示する
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
エクセルVBAで機械の稼働時間を...
-
VBA 日付、未来の日付はエラー...
-
DataGridViewの和暦表示について
-
VBAで当月の1日を表示するには...
-
「eclipseで作るカレンダー(ス...
-
テキストボックスにカレンダー...
-
ExcelVBAでSQLサーバの日付時刻...
-
【Excel VBA】条件に合った行の...
-
VBAのapplication.ontime メソ...
おすすめ情報
上記の現象は 2013 のみです
2007/2010 とも 同じコードですが 0:00 の記録は有ります。(正常に動いています)
疑ったことも無かったので、気づくのが遅れました・・・が真相です
反復時刻 = format(反復時刻 + インターバル, "yyyy/mm/dd h:nn:ss"))
で、 解決
まあ、Ver 上がるたびに、ルールがきつくなるのは、承知とは言え・・