[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『PCを閉じた状態で指定時間になったらエクセルマクロ(OnTime)を実行したい』(さゆり)
お世話になります。
PCを閉じた状態で指定時間になったらエクセルマクロ(OnTime)を実行したいのですができません。どうしたらパソコンを閉じた状態でマクロを実行させることができますか。
PCの電源設定(ディスプレイの電源を切るなど)は、すべて「なし」に
しています。スクリーンセーバーもなしです。
ご教授よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
PCを閉じた状態って、どういう状態なんですか?
ノートパソコンの電源を切って蓋を閉めた、と言うこと?
(半平太) 2018/02/26(月) 13:35
PCがスリープモードに入ってないですか? 機種によるかもしれませんが、 電源オプションから、 「カバーを閉じたときの動作の選択」で「何もしない」と なっているでしょうか。 (ろっくん) 2018/02/27(火) 09:04
PCがスリープモードに入ってないですか?
コンピュータをスリープ状態にする→「なし」に設定済み。
ディスプレイを暗くする→「なし」
ディスプレイの電源を切る→「なし」
>カバーを閉じたときの動作の選択」で「何もしない」と
カバーを閉じたときの動作→「何もしない」
電源ボタンを押したときの動作→「何もしない」
以上の設定にっしています。
よろしくお願いします。
(さゆり) 2018/02/27(火) 14:35
OnTimeが指定の時間に実行する処理だがOnTimeを指定の時間に実行したいとはどういうこと
(dd) 2018/02/27(火) 15:24
ふたを閉めてもPCは動作はしているのですか? メーカー独自のハード又はソフトの設定により電源が切れていませんか?
(semm) 2018/02/28(水) 09:04
という質問ですよね?
蓋開けておけば良いのでは?
(tatara) 2018/02/28(水) 11:28
OnTimeを使ったマクロを動かしておいて、PCを閉じて、朝になって開いてみたとき、どういう状態になっていますか? 閉じる前と同じように、Excelが表示されていますか? ロック画面が表示されていて、ログイン認証を求められませんか?
(windows updateが動作した、とかならログイン画面になるでしょう)
または、マクロの処理というのが他のブックを次々開いてデータを見る、とかなら、途中のブックを開いた状態で止まっている、なんて事はないでしょうか? この場合なら、PCを閉じることでSHIFTキーが押された状態になっているかも知れません。
(???) 2018/02/28(水) 16:26
(γ) 2018/02/28(水) 19:14
>または、マクロの処理というのが他のブックを次々開いてデータを見る
次々と開いて処理します。PCを開いていて、OnTimeを使って処理した場合は、正常に処理します。
>念の為ですが、過去を指定してないですか?
日付、時間の変更は、よくします。それでOnTimeが動くか試しています。
よろしくお願いします。
(みゆき) 2018/03/01(木) 09:47
また、消しゴム等を挟んで、バックライトは消えても、完全には閉じない状態にした場合はどうなるかも知りたいですね。これならSHIFTキーが押されないので、他ブックを開いたところで止まってしまうという症状だったのならば、直ることでしょう。
(???) 2018/03/01(木) 10:45
OnTime自体が指定時刻になっても動きませんでした。
>しゴム等を挟んで、バックライトは消えても、完全には閉じない状態にした場合はどうなるかも知りたいですね
了解しました。試してみます。
皆様 いろいろ教えていただき有難うございます。今後ともよろしくお願いします。
(みゆき) 2018/03/01(木) 16:09
別ブックに以下のマクロを仕込んでおいて(ブック保存した後に、ブックを開き直すと自動実行します)、一緒に開いておいてみてください。とりあえず、3分経ったらA1セルに"OK"と表示されますし、動き続けている限り、ステータスバーに日時表示しますので、止まったかどうか判断できるでしょう。
[ThisWorkbook] Private Sub Workbook_BeforeClose(Cancel As Boolean) Call sStop End Sub
Private Sub Workbook_Open() Sheets(1).Range("A1") = "" dNext = Now dEnd = Now + TimeValue("00:03:00") 'ここは好きな時間を足してください Call sTimer End Sub
[標準モジュール] Public dNext As Date Public dEnd As Date
Public Sub sTimer() Application.StatusBar = Now dNext = dNext + TimeValue("00:00:10") If dEnd <= dNext Then If Sheets(1).Range("A1") = "" Then Sheets(1).Range("A1") = "OK" End If End If Application.OnTime dNext, "sTimer" End Sub
Public Sub sStop() If dNext <> 0 Then Application.OnTime dNext, "sTimer", , False dNext = 0 Application.StatusBar = "" End If End Sub (???) 2018/03/01(木) 17:41
皆様 今までご教授有難うございます。
大変 勉強になりました。
今後ともよろしくお願いします。
(さゆり) 2018/03/05(月) 10:28
毎日提示に特定のマクロを実行したいということですよね。
このような場合は、タスクスケジューラ を使うのが常道じゃないかな。
タスクスケジューラ なら、スリープを解除して実行する、ログインしていなくても実行する、失敗したら時間をおいて再起動する、など細かい設定が可能です。
これなら、実行されていなくて慌てるということも少なくなるでしょう。
Workbook_Open に実行したいマクロを呼び出すようにしておいて、タスクスケジューラで指定時間にそのブックを開くように設定しておけばいいでしょう。
(hatena) 2018/03/05(月) 11:08
誤)
毎日提示に、
正)
毎日定時に、
(hatena) 2018/03/05(月) 16:29
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.