Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5541 / 13645 ツリー ←次へ | 前へ→

【50235】セルの値を読み取ってタイマーを作動させる 篤史 07/7/15(日) 1:25 質問[未読]
【50238】Re:セルの値を読み取ってタイマーを作動さ... bykin 07/7/15(日) 10:28 回答[未読]
【50244】Re:セルの値を読み取ってタイマーを作動さ... 篤史 07/7/15(日) 13:06 お礼[未読]

【50235】セルの値を読み取ってタイマーを作動させ...
質問  篤史  - 07/7/15(日) 1:25 -

引用なし
パスワード
   VBA入門者の篤史です。どなたか教えていただけませんか?

タイマーを使いたいのですが、

Sub timer()
   Application.OnTime EarliestTime:=Now + TimeValue("00:10:00") _
     , Procedure:="test", LatestTime:=Now + TimeValue("00:10:30")
End Sub

Sub test()
   MsgBox "時間です。"
End Sub

で、今から10分後にメッセージボックスを出せることまでは分かったのですが、
例えば Sheet1.Cells(1, 1) にあらかじめ "10:00" と時刻を入力しておいて、
この時刻を元に10分後に作動させる場合、

Now のところに TimeValue(Sheet1.Cells(1, 1)) を入れ替えれば良いのかと思ったのですが、どうも上手くいきません。
どなたか何処がいけないのか教えてください。

【50238】Re:セルの値を読み取ってタイマーを作動...
回答  bykin  - 07/7/15(日) 10:28 -

引用なし
パスワード
   こんにちわ。

>例えば Sheet1.Cells(1, 1) にあらかじめ "10:00" と時刻を入力しておいて、
>この時刻を元に10分後に作動させる場合

"10:00" では普通は10時間後ですわなー
表示形式を "mm:ss" にしてるってことなんかな?
せやなかったら、"0:10:00" とかにせんと10分にはなりまへん。

で、セルに時刻を入力すると、見た目とは違うシリアル値が入るんです。
これは TimeValue の戻り値と同じやから、セルの値をそのまま使えばええんです。

Application.OnTime Now() + Cells(1, 1).Value, "test"

※プロシージャ名に Timer をお使いやけど、VBA の Timer 関数と競合するんで
 別の名前に変更することをお勧めします。
 それと、Value プロパティも省略せず書くことをお勧めしておきます。

ほな。

【50244】Re:セルの値を読み取ってタイマーを作動...
お礼  篤史  - 07/7/15(日) 13:06 -

引用なし
パスワード
   bykinさん、はじめましてこんにちは。

早速のご回答ありがとうございます。
ただ、自分の説明が足らなかったようで、補足させていただきます。

Sheet1.Cell(1,1) に入れるのは、"2:50 AM"といった作動させたい目標時刻です。
ただ、表示は"2:50 AM"でも、実際にはその10分後とかに作動させたいので、
+ TimeValue("00:10:00")を付けています。

確かに、bykinさんの教えていただいたように、今を基準に何分後といった引用は動くのですが、

Sub timer()
   Application.OnTime EarliestTime:=Sheet1.Cell(1,1).Value + TimeValue("00:10:00") , Procedure:="test", LatestTime:=Now + TimeValue("00:10:30")
End Sub

のようにセルの値を基準に持ってくると、やはり動きませんでした。

っと、ここまで書いているうちにひょっとしてと思い、セルに”2007/7/15 13:00:00"と入力したところ、無事に動きました。

ありがとうございました。

>※プロシージャ名に Timer をお使いやけど、VBA の Timer 関数と競合するんで
> 別の名前に変更することをお勧めします。
> それと、Value プロパティも省略せず書くことをお勧めしておきます。

こちらも、教えてくれてありがとうございます。全く気がつきませんでした。
これから気をつけます。
また、分からないことがあったらお願いします。

5541 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free