Excel VBA質問箱 IV

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

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


13115 / 13646 ツリー ←次へ | 前へ→

【6904】ExcelVBAから電源ダウンするには 周平 03/8/9(土) 20:51 質問
【6905】Re:ExcelVBAから電源ダウンするには Kein 03/8/9(土) 21:32 回答
【6908】Re:ExcelVBAから電源ダウンするには 周平 03/8/10(日) 13:50 質問
【6909】Re:ExcelVBAから電源ダウンするには Kein 03/8/10(日) 16:51 回答
【6924】Re:ExcelVBAから電源ダウンするには 周平 03/8/11(月) 22:46 質問
【6925】Re:ExcelVBAから電源ダウンするには よろずや 03/8/11(月) 23:58 回答
【6926】Re:ExcelVBAから電源ダウンするには Kein 03/8/12(火) 5:12 回答
【6937】Re:ExcelVBAから電源ダウンするには 周平 03/8/12(火) 23:04 質問
【6938】Re:ExcelVBAから電源ダウンするには Kein 03/8/13(水) 0:44 回答
【6960】Re:ExcelVBAから電源ダウンするには 周平 03/8/15(金) 21:40 お礼

【6904】ExcelVBAから電源ダウンするには
質問  周平  - 03/8/9(土) 20:51 -

引用なし
パスワード
   ExcelVBAのマクロ実行中から、例えば1時間後にパソコンの電源をダウン(強制終了)することは可能でしょうか。初心者です。

一定の時間にパソコンを立ち上げるのは、BIOSを設定すればできるのですが、終了させるのができません。よろしくお願いします。

【6905】Re:ExcelVBAから電源ダウンするには
回答  Kein  - 03/8/9(土) 21:32 -

引用なし
パスワード
   いちおう、こんな感じで出来ると思います。

Dim ETime As Date

Sub SetSc()
  ETime = Now() + TimeValue("01:00:00")
  Application.OnTime ETime, "All_SD"
End Sub

Sub All_SD()
  Dim Wb As Workbook
  Dim WshShell As Object
 
  On Error Resume Next
  Set WshShell = CreateObject("WScript.Shell")
  Application.OnTime ETime, "All_SD", , False
  For Each Wb In Workbooks
   Wb.Save
  Next
  Application.Quit
  WshShell.Run "C:\WINDOWS\RUNDLL.EXE USER.EXE,ExitWindows"
End Sub

【6908】Re:ExcelVBAから電源ダウンするには
質問  周平  - 03/8/10(日) 13:50 -

引用なし
パスワード
   Kein さん
教えていただいてありがとうございます。

早速、コピーしてSheet1にコードを入れて、時間を1分に変更して、マクロのSheet1.SetScを実行してみましたところ、1分後に

マクロ"C:\My documents\excel\Testbook1.xls'!All_SD'が見つかりません。

のメッセージが出ました。どこか間違っているのでしょうか。よろしくお願いします。

【6909】Re:ExcelVBAから電源ダウンするには
回答  Kein  - 03/8/10(日) 16:51 -

引用なし
パスワード
   >Sheet1にコードを入れて
シートモジュールではなく、標準モジュールに入れないといけません。
なお実行前に、エクセル以外のソフトを全て終了させておいて下さい。

【6924】Re:ExcelVBAから電源ダウンするには
質問  周平  - 03/8/11(月) 22:46 -

引用なし
パスワード
   Kein さん
再度のご教授ありがとうございます。

ご指摘の標準モジュールのModule1にコードを入れ、実行しましたところ1分後にExcelが終了してデスクトップの画面に変わりました。しかし、そのあとウインドウズは終了しませんでした。
何回もすみませんが、よろしくお願いします。

【6925】Re:ExcelVBAから電源ダウンするには
回答  よろずや  - 03/8/11(月) 23:58 -

引用なし
パスワード
   ▼周平 さん:
>Kein さん
>再度のご教授ありがとうございます。
>
>ご指摘の標準モジュールのModule1にコードを入れ、実行しましたところ1分後にExcelが終了してデスクトップの画面に変わりました。しかし、そのあとウインドウズは終了しませんでした。
>何回もすみませんが、よろしくお願いします。

RUNDLL.EXEファイルがどこにあるか、検索しましょう。

【6926】Re:ExcelVBAから電源ダウンするには
回答  Kein  - 03/8/12(火) 5:12 -

引用なし
パスワード
   WSHShell.Run "C:\WINDOWS\RUNDLL32.EXE Shell32.dll,SHExitWindowsEx 1"

に変更して、RUNDLL32.EXE のパスが正確かどうか調べて下さい。Runメソッドの
第一引数に、正確なパスを渡せばオッケーです。こちらの使用している OS が
Win98 なんで、C:\WINDOWSの下ということで、問題なく動作してますが、そちらの
環境でも同じかどうかは分かりません。

【6937】Re:ExcelVBAから電源ダウンするには
質問  周平  - 03/8/12(火) 23:04 -

引用なし
パスワード
   Keinさん
何度もお付き合いいただきありがとうございます。

当方の予備用のパソコンはWIN98+エクセル2000ですので、【6925】のコードで強制終了となりました。ありがとうございます。

ところが、いつも使っているパソコンは、WinXP Pro SP1 と エクセル2002ですが、次のコード
WshShell.Run "C:\WINDOWS\system32\RUNDLL32.EXE Shell32.dll,SHExitWindowsEx 1"
を入れて動かしましたところ、デスクトップの画面に変わり、
『Shell32.dllでエラーが発生しました。エントリがありません:SHExitwindowsEx』のメッセージが出て、止まります。
何回もすみませんが、よろしくお願いします。

【6938】Re:ExcelVBAから電源ダウンするには
回答  Kein  - 03/8/13(水) 0:44 -

引用なし
パスワード
   んー・・Win XP については、残念ながらこちらでは分かりません。
どなたか使ってる方にお聞きするか、↓こちらで伺って下さい。
http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/index.shtml
Windowsをシャットダウンするコードは、そのサイトで見つけたものです。

【6960】Re:ExcelVBAから電源ダウンするには
お礼  周平  - 03/8/15(金) 21:40 -

引用なし
パスワード
   Kein さん、よろずやさん
いろいろご教授いただきありがとうございました。
これからもっと勉強していきます。

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