ベストアンサー ※ ChatGPTを利用し、要約された質問です(原文:vbaで「休止状態」にしたい) vbaで「休止状態」にする方法 2009/12/02 21:20 このQ&Aのポイント vbaで休止状態にする方法について教えてください。vbaで「シャットダウンのダイアログが出るタイプ」はできるが、スタンバイ機能がvistaにないため、スタンバイする方法がわかりません。vistaでスタンバイ状態にする方法を教えてください。 vbaで「休止状態」にしたい vista、オフィス2003です。 以前の質問関連ですが http://okwave.jp/qa4909102.html vbaで休止状態にしたいです。 で、http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/technic.htm から 「シャットダウンのダイアログが出るタイプ。スタートメニューから終了するのと同じです」 Set Win =CreateObject("Shell.Application") Win.ShutdownWindows はできるのですが サスペンド(スタンバイ) Set Win = CreateObject("Shell.Application") Win.Suspend は何も起こりません。 スタンバイ機能がvistaにないからでしょうか? vistaでスタンバイにする方法がわかる方、 教えてください。 よろしくお願いします。 質問の原文を閉じる 質問の原文を表示する みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー DOUGLAS_ ベストアンサー率74% (397/534) 2009/12/03 17:04 回答No.1 Sub Macro() Shell ("C:\Windows\System32\rundll32.exe powrprof.dll,SetSuspendState") End Sub XPでしたら、これでOKですが、はて Vista では? 質問者 お礼 2009/12/03 21:25 ありがとうございます。 早速やってみたところ、スリープモードになってしまいました。 XPのスタンバイ=vistaのスリープなのかもしれません。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) DOUGLAS_ ベストアンサー率74% (397/534) 2009/12/03 22:56 回答No.3 #DOUGLAS_ です。たびたび失礼いたします。 ≦(._.)≧ さきほどのは、意味不明な中国語の サイト から無理矢理引っ張ってきましたので、多分 エラー 発生、あるいは動作しないかと存じます。 で、 http://scripting.cocolog-nifty.com/blog/2007/04/post_5183.html を参考にして Sub Macro() CreateObject("Excel.Application").ExecuteExcel4Macro "CALL(""PowrProf.dll"",""SetSuspendState"",""JJJJ"",0,0,0)" End Sub で「スタンバイ」にできました(ただし、XPです)。 質問者 お礼 2009/12/12 10:28 できました。 しかし自分で質問して不安に思ったのですが スリープと休止状態の違いがよくわかっていませんでした。 でもスリープでもよくなってきました。 何度もありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 DOUGLAS_ ベストアンサー率74% (397/534) 2009/12/03 22:41 回答No.2 [回答番号:No.1] の DOUGLAS_ です。 >早速やってみたところ、スリープモードになってしまいました。 手許に、Vista の パソコンがありませんので確認ができず、何の根拠もございませんが、「SetSuspendState」を SetStandbyState SetSuspendState SetHibernateState などに変えてお試しください。 質問者 お礼 2009/12/12 10:27 SetStandbyState は「エラーが発生しました」というメッセージがでます。 SetSuspendStateはスリープモード?回復に時間がかかるからスタンバイ? SetHibernateState は「エラーが発生しました」というメッセージがでます。 でした。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ パソコン・スマートフォンソフトウェアオフィス系ソフト 関連するQ&A フォルダ指定ダイアログ(Excel97VBA) とあるサイトで、下記のようにして、フォルダを指定するダイアログを表示させるコードを見つけました。 Set objKng = CreateObject("Shell.Application") Set dirKng = objKng.BrowseForFolder(0, "フォルダを選択してください。", 0) 上記2行についてどなたか解説して頂けないでしょうか? 特に、("Shell.Application")の""内の意味・他に何ができるのか、(0,"・・・",0)のゼロが分かりません。 また、このダイアログで、IF文を使って条件分岐させるにはどうすればいいのでしょうか? 以下のような感じで作りたいのですが。 If キャンセル押下時 then Exit Sub Else 実行 End If 宜しくお願いします。 WSHのスタンバイが出来ない windowsスクリプトホストを使ってスタンバイ アイコン が出来ません。操作方法を教えて下さい (1)PCはwin me 64MBです。 (2)テキストファイル の内容 dim objshell set objshell=wscript.createobject("shell. application") objshell.suspend c:\suspend.vbsとして保存しました。 (3)windows script 5.6をインストールしました。 (4)エラー表示 <オブジェクトでサポートされていないプロパティ または メソッドです。>となります。 win7の休止状態 休止状態で落としてもまたすぐに起動します。 vistaの場合はネットワークアダプターのwake on関係をオフにすれば良かったのですが、win7ではどうすればよいのでしょうか。 次のことはやっていますが効果がありません。 ネットワークアダプターからの電源管理のスタンバイ解除オフ マウスの電源管理オフ 電源オプションからの詳細な電源設定の変更からスリープの各項目オフ 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? OKWAVE コラム VBA コントロールパネルの機能を呼び出す サンプルコードを見て Sub コントロールパネル_画面の設定を呼び出す() Dim WSH Set WSH = CreateObject("wscript.shell") WSH.Run "control.exe desk.cpl" End Sub はできたのですが コントロールパネルのほかの機能も呼び出したいのですが そういうのが載っているサイトなどはご存知でしょうか? 「desk.cpl」の部分の一覧が知りたいです。 (プログラムの追加と削除なども表示で起用にしたい) よろしくお願いします。 クロスケブル繋がっているPCを休止状態にするには? パソコンA(win7)とパソコンB(vista)をクロスケーブルでつないでいます。 この時、パソコンAからパソコンBの電源をVBAで休止状態にする事はできますでしょうか? Sub Macro() Shell ("C:\Windows\System32\rundll32.exe powrprof.dll,SetSuspendState") End Sub これで自身のパソコンは休止状態にできるのですが クロスケーブルでつながれているもう一つのパソコンを操作する方法を教えてください WSHでタブ移動は可能ですか WSHでブラウザーのある指定URLを開くまで実現できました(下記の例)が、タブキーで移動する操作を実現させ、移動した部分の文字がある特定の文字の時、またそこのURLに移動させたいのですが、可能でしょうか。 Set objIE = CreateObject ("InternetExplorer.Application") objIE.Navigate("about:blank") strURL = "http://・・・/" Set objShell = CreateObject("Wscript.Shell") objShell.Run(strURL) Windows Script Hostは、スクリプ Windows Script Hostは、スクリプト言語なのでしょうか? Sub Sample() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") Debug.Print WSH.SpecialFolders("Favorites") Set WSH = Nothing End Sub このようなコードでVBAでWSHを使っていますが WSHが何なのかわからないまま使っています。 Object型じゃない型で宣言したいです。 Function MyDesktop() Dim WSH Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function このコードの Dim WSH に、ちゃんと変数の宣言をしてあげたいのですが 何で変数の宣言をして、どこに参照設定をすればいいのでしょうか? Object型じゃない型で宣言したいです。 WSH動作しない!!(WScript.SleepとSendKeys?) WSHが動作しなくて困っています。 動作するコードとしないコードは次のとおりです。 いずれも@ITに掲載されているサンプルコードをそのままです。 動作しないコードについても,notepadの起動まではできます。 どうやら,sleepとsendkeysが動いてくれないようです。 <正常に動作するコード> Set objShell = WScript.CreateObject("WScript.Shell") WScript.Echo "メモ帳を起動します。" objShell.Run "notepad.exe" http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_02.html <動作しないコード> Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello" http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html ■動作環境 Win XP Pro IE 6.0 ちなみに,WSHファイルに対する実行権限はあります(フルコントロールです)。 以上なのですが,何か点検するべき事項などありましたらご教示ください。 ie操作 ローカルパスだとエラーになる ヤフーなら問題なくコードが動くのに、URLがローカルのパスだと、エラーになってしまいます。 具体的には、 *********************************************************** Sub Sample1() Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.yahoo.co.jp/" objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub *********************************************************** だと、問題なく実行されるのに、 *********************************************************** Sub Sample2() strFName = MyDesktop & "\index.html" Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate strFName objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub ------------------------- Function MyDesktop() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function *********************************************************** だと、 Do Until objIE.ReadyState = 4 で オートメーションエラー 起動されたオブジェクトはクライアントから切断されました。 となります。 なぜローカルだと、エラーになるのでしょうか? 何が違うのでしょうか? Namespaceの引数について VBA超初心者です。 指定したフォルダーの中のファイルの詳細をエクセルに落とすマクロを作成しているのですが、ファイルダイアログで指定したパスがNamespaceの引数にうまく渡せません。たぶん型が違うか何かだと思うのですが、ご存知の方ご教授願えれば幸いです。 Set SHell = CreateObject("Shell.Application") Set Folder = SHell.Namespace("C:\Users\") ↓ Set Folder = SHell.Namespace(Target_Dir) 直接pathを書き込むと問題なく動作するのですが、変数で引き渡すとエラーになります。型が違う?初心者でもわかるように解説していただけると助かります。 (VBA) Dir 関数で取得するファイル一覧の順序 タイトルの通り、下記のサンプルコードを実行して取得するファイル一覧の順序についての質問です。 Public Sub Test1() Dim WSH As Object Dim MyPath As String Dim MyFileName As String Set WSH = CreateObject("WScript.Shell") MyPath = WSH.SpecialFolders("MyDocuments") MyFileName = Dir(MyPath & "\" & "*.*") Do Until MyFileName = "" MsgBox MyFileName MyFileName = Dir Loop Set WSH = Nothing End Sub (質問) ファイル名の昇順では取得できないようですが、もしファイル名の昇順に並べ替えるとしたら、 どのように処理したらよいのでしょうか? ヤバいパソコンが壊れたかも!?事前に知っておきたい3つの兆候と対策 OKWAVE コラム perlでdialogのフォルダ指定 perl勉強中のものです。 perlにてプログラムを作成中ですが、フォルダを ダイアログを使って指定したいです。 参考ページを調べvbsにて以下のプログラムを作ってみました。 ****************************************************************** Set Shell = CreateObject("Shell.Application") Set objFolder = Shell.BrowseForFolder(0, "フォルダを選択してね!", 1, "c:\\") if objFolder is Nothing then Msgbox("ちゃんと選んで頂戴!") else Msgbox(objFolder.Items.Item.Path) end if ****************************************************************** 理解しきれていないのですが、vbsをperlに埋め込む?(変換?)ことができるようで モジュールを使って、上記のプログラムから参考を調べ、見よう見まねでperlで 作ってみましたが、何も表示せず、動作しません。 どこに問題があるか教えていただけないでしょうか? ****************************************************************** use Win32::OLE; my $Shell = Win32::OLE->CreateObject("WScript.Shell"); my $objFolder = $Shell->BrowseForFolder(0,'フォルダを選択してね', 1, 'c:\\' ); unless ($objFolder) { $Shell->MsgBox('ちゃんと選んで頂戴!',undef,'フォルダ選択',1); } else { $Shell->MsgBox("$objFolder->$Items->$Item->$Path"); } ******************************************************************* とんちんかんなプログラムを作っているかもしれませんが、 ご指導よろしくお願いします。 VBAでAccessからExcel VBAでAccessからExcelファイルを ダイアログで選択して開き転記をさせたい。 以下のように書いてみるとダイアログ表示までは 出るのですが、Excelは起動しません、 何かが足りないとは思うのですが ご指摘、ご教授お願いします。 Sub test2() Dim objxls Set objxls = CreateObject("excel.application") Dim myfile Dim xls myfile = objxls.Application.getopenfilename() Set xls = objxls.workbooks.Open(myfile) VBAでIE操作ができない エラーになる vista+オフィス2007です。 エクセルで --------------------------------------------------------- Sub ie_test() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.google.co.jp/" End Sub --------------------------------------------------------- を実行したいのですができません。 Set objIE = CreateObject("InternetExplorer.Application") の部分で、しばらく固まり、その後 「実行時エラー'-2147467259(80004005)': オートメーションエラーです。 エラーを特定できません」 と表示されてしまいます。 前にvista+オフィス2003の時は 上記のコードで問題なく動作しました。 2007でも動く方法を教えてください。ご回答よろしくお願いします。 インターネットで調べてVBSで下のようなものを作ってみました。 インターネットで調べてVBSで下のようなものを作ってみました。 やりたいことは、IEを起動して複数のサイトを複数のタブで表示 したいのですが、サイトの種類分IEも起動してしまいます。 考えているようなことはできないのでしょうか。 ========ここから下です======== Option Explicit Dim objIE Dim objShell 'Shell.Application Set objShell = CreateObject("Shell.Application") Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.okwave.jp/" Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.google.co.jp/" Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.yahoo.co.jp/" ======================= よろしくお願いいたします。 フォルダ選択と取得したパスの表示 どうしてもわからないのでご教授お願いします。 コマンドボタンを使用して、フォルダの選択のダイアログを表示し、選択したフォルダのパスを取得することはできたのですが、そこから取得したパスを任意のセルに表示させたいです。 どうすれば表示させることができるでしょうか。 Private Sub commandbutton1_Click() Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then MsgBox myPath.Items.Item.Path Set Shell = Nothing Set myPath = Nothing End Sub ご教授宜しくお願いします。 VBAでIE操作をするサンプル VBAでIE操作をするサンプルをネットでいくつか見ているのですが Sub Sample1() Dim objShell As Object Dim objIE As New InternetExplorer Set objShell = CreateObject("Shell.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing Set objShell = Nothing End Sub Sub Sample2() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub ではどちらを使った方がいいのでしょうか? 圧倒的にSample2の方がネットでは多いのですが Sample1のやり方もあることを知りました。 Sample1の方法でブラウザを開くメリットはあるのでしょうか? マザーボードを換えたらVBSからの休止が出来なくなりました。 こんにちは。 表題の件ですが、以前容易に”休止”に移行する為にVBSを使用しての 休止をアドバイスしていただいたのですが、今回表題に記したように マザーボードを換えたら以下のスクリプトで休止できなくなりました。 Set wShell=CreateObject("WScript.Shell") wShell.SendKeys "^+{esc}" Do While Not wShell.AppActivate("Windows タスク マネージャ") WScript.Sleep 100 Loop wShell.SendKeys "%uh%fx" '休止状態 なぜなのでしょう?アドバイスをお願いします。 ちなみに以前のマザーボード(ASUS P5-VMDO)で効果のあったScript.Sleep 100と記されてる行の数値を弄って見ましたが待機時間が変わるだけで”休止”になりませんでした。 現在のマザーボードはASUS P5Q Deluxeです。 vbaからコマンドプロンプトを起動したのちに excelvbaで「CreateObject」からコマンドプロンプトを起動したのちにテラタームを起動させポート転送を許可するテキストをテラタームにわたして、テラタームに実行させるってことはできるのでしょうか? 以下の★印に"ssh -L 任意のポート:レンタルサーバーのipアドレス:任意のポート"のようなテキストをテラタームに渡したいです。 Private Sub テラタームを開く() Dim wsh, tr As Object, appname As String Set wsh = CreateObject("Wscript.Shell") appname = "C:\Program Files\teraterm\ttermpro.exe" Set tr = wsh.exec(appname)’テラタームが開いた後に '★印 "ssh -L 任意のポート:レンタルサーバーのipアドレス:任意のポート" End Sub 環境は windows7 office2003 excel です どうぞ、よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ パソコン・スマートフォン ソフトウェア Excel(エクセル)Word(ワード)PowerPoint(パワーポイント)Access(アクセス)その他MS Office製品オフィス系ソフトPhotoshop(フォトショップ)Illustrator(イラストレーター)その他Adobe製品画像・動画・音楽編集ホームページ作成ソフト筆まめ・はがき作成フリーウェア・フリーソフトその他(ソフトウェア) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。 早速やってみたところ、スリープモードになってしまいました。 XPのスタンバイ=vistaのスリープなのかもしれません。