• ベストアンサー

エクセルVBAでスクリーンセーバーを

スクリーンセーバーの待ち時間が5分に設定されている環境です。 5分毎に何かを行い、スクリーンセーバーが働かないようにしたいと思っています。 これをエクセルVBAで行うことはできないでしょうか。 何か操作に余り影響の少ない何か、スクリーンセーバーには何か操作をやっていると思わせる。 どのようなVBAを組んだらよろしいでしょうか。 よろしくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

安直な提案ですがスクリーンセーバの無効・有効を切り替え・・ではダメ? Private Sub Workbook_Open() 'http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/nov05/hey1121.mspx '↑ネタ元です Const HKEY_CURRENT_USER As Long = &H80000001 Dim strComputer As String Dim objReg As Object Dim strKeyPath As String, ValueName As String Dim strValueOld As String, strValueNew As String strComputer = "." Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") strKeyPath = "Control Panel\Desktop" ValueName = "ScreenSaveActive" strValueNew = "0" '無効にする。有効は1 objReg.GetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValueOld Debug.Print strValueOld objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValueNew Debug.Print strValueNew End Sub でBookのBeforeCloseイベントで有効にするとか・・・ OS の環境とユーザーの権限によっては出来ない場合も有るかと思います。 当方 WinXP、Admin権限でテスト。

believe_me
質問者

お礼

回答ありがとうございます。 結局のところ、スクリーンセーバーの設定を15分にすることで解決しました。 PCの設定確認は事前に連絡があることが分かり、当日5分に戻せば良いと(勝手に)判断しました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

根本的にはスクリーンセーバーを切ってしまえば良いのでしょうが、 それができない環境ということでしょうか? 操作に影響のなさそうなキー(例えば F16 とか)を SendKeys してみたら? アプリケーションレベルでは、実際にキーを押されたものと SendKeys で送られてきたものとで区別はないですよ。  # Userform などでも KeyDown イベントはちゃんと発生します また、その時に次回予約を OnTime で入れておけば良いのですが、 キャンセルさせるための仕組みも必要でしょう。 これで上手くいけるかどうかは検証してませんが。

believe_me
質問者

お礼

回答ありがとうございます。 「スクリーンセーバーの『5分』設定」はありきです。 当社の管理部門からスクリーンセーバーにはパスワード及び待ち時間5分を設定せよとの通達が出ております。 月に数回管理部門担当者による各PCの設定確認が抜き打ちで行われます。 パスワードは10文字以上、英字大文字・小文字・特殊文字を全て使用、1ヶ月毎に変更、過去5回は異なるパスワードを設定、机などに一切付箋などは禁止になっています。 PCを多用する仕事ですが、書類などを調べると直ぐ5分経ってしまい、また長いパスワードを入れなければならずとても効率が悪いです。 いささかグレーゾーン的な対応ですが、スクリーンセーバーの設定を変更せずにセーバーが働かないようにしたいと考えております。 尚、ホストコンピュータのエミュレーションも5分で自動的に落ちますが、5分毎にEnterキーを送るマクロを作った人間がおり、そのマクロを使用しております。 このマクロは公認されているか不明ですが、弊社のイントラネットに掲載されており、ほとんどの社員が使用しております。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 こういう書き方は失礼にも聞こえるかもしれませんが、believe_me さんのご質問は、いつも難しいものが多いです。ある意味、自分で検索して作成可能なものは、ご自身で探して作られたほうがよいのではないか、と思うのです。 「スクリーンセーバーの『5分』設定ありき」という状態から、スクリーンセーバー制御というのは、「C」なら当たり前でも、VBA/VBでは、実験的な分野だと思います。私自身、そういうコードは書けると思いますが、それを得々として回答できるほど、私には自信がありません。VBA/VBで、可能だとはいっても、その分野になると、他の技術を借りなくてはどうしようもないと思うのです。 ヒントを出しておきます。 API関数で、スクリーンセーバーを制御する方法を考えればよいと思います。 「EnumDesktopWindows」とかで、検索したら旧VB系のコードが出てくると思いますので、それをVBAに切り替えれば良いと思います。 ぜひ、がんばってみてください。

believe_me
質問者

お礼

いつも回答ありがとうございます。 「スクリーンセーバーの『5分』設定」はありきです。 「C」や「VB」は使えない環境です。 プログラム言語らしきものはOfficeソフトの「VBA」だけが使えます。 簡単にはできそうもないことは予想していました。 少し安直に考えていたかも知れません。 「EnumDesktopWindows」は初めて聞きました。 調べてみます。

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> エクセルVBAで行うことはできないでしょうか。 スクリーンセイバーはキーボード・マウスの入力を検知しているので、 VBAでいくらセル選択を動作させても、難しいと思います。

believe_me
質問者

お礼

回答ありがとうございます。 VBAでは無理なのでしょうか。 キーボード・マウスをエミューレーションすることは やはり不可能なんですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • スクリーンセーバー

    最近、パソコンに何の操作も加えないと、15分くらいで画面がパッと暗くなります。そしてマウスを動かすとすぐに復帰します。 動画を見るときなど、とても不便で困っています。 スクリーンセーバーの設定の問題かなと思い、デスクトップからプロパティ→スクリーンセーバーで待ち時間を100分にしたのですが変化がありません。 何か設定方法があるのでしょうか??

  • スクリーンセーバーについて

    スクリーンセーバーについて このページに⇒ http://www.noa-prolab.co.jp/dict/pc.html スクリーンセーバーについて載っていますが、 何分たったら、スクリーンセーバーを表示するか、待ち時間も設定できる このように書かれていますが、3時間後に設定してもディスプレイの焼き付けは発生しないでしょうか? と言いますのは、 長時間、起動させておかなければならない某ソフトを使用中にスクリーンセーバーになってしまいます。 その間、某ソフトは動いているのでしょうか?一時停止でスクリーンセーバーを解除後に 動くようになったりしていないでしょうか? 今、私のPC のスクリーンセーバーの設定は10分後になっています。 私のPCはノートPC XPProサービスパック3です。

  • スクリーン セーバー

    スクリーンセーバーの設定は3分に設定してあります。 3分経過すると勿論スクリーンセーバーが開始されますが少し経つとマウスを動かしていないのにスクリーンセーバーが終わってしまいます。 再度、少し経つと再開しますが少し気になっています。 マウスはワイヤレスマウス(エレコム M-DY1URSV)を利用しています。このマウスの原因か又 googleデスクトップを利用しているのでそのインデックス表示の影響でスクリーンセーバーが止まってしまうのかと私は思っているのですが。 ご存知の方など些細な情報で結構ですのでご回答の程よろしくお願いいたします。

  • スクリーンセーバーが起動しません

    win98SEです。スクリーンセーバーを、無操作状態が4分で起動するように設定してあるのですが、4分以上経ってもスクリーンセーバーが起動しないことが、しばしばあります。パソコンの電源を入れて、最初の無操作状態4分後には必ずスクリーンセーバーが起動するのですが、その後またパソコンを使って、再度、無操作状態が4分になっても起動しない場合がほとんどです。よろしくお願いします。

  • スクリーンセーバーではないとしたら?

    こんにちは。 知人のWindowsパソコンが、15分程で画面全体が「赤青緑…」となるのを なんとかならないか、と言われました。 マウスを操作したりすると普通の画面に戻るということだったので、 てっきりスクリーンセーバーのことだと思っていました。 しかし相手の家に行ったときにスクリーンセーバーの設定を見てみると、 普通の黒い画面に「windows」が表示されるスクリーンセーバーでした。 念の為に他のスクリーンセーバーにして待っていましたら、 ディスプレイ全体が「赤青緑白黒…」と色が次々変わっていきました。 どうやらスクリーンセーバーではないようです。 原因がわからなくなってしまったので、こちらに書きこませていただきました。 そのパソコンは頂きものの自作PCのようです。

  • スクリーンセーバー

    PCはFujitsu FMV-BIBLO NB8/900L winXP です。 ここ半年程、スクリーンセーバーが作動しません。 設定の待ち時間は20分にしています。20分を経過するとスクリーンセーバーが作動せずに画面が真っ黒です。どうすれば正常に作動しますか?

  • スクリーンセーバーが動作しません。

    Windows Vistaを使用しているのですが設定してもスクリーンセーバーが動作しません。設定は以下のようにしました。 1.デスクトップ上で右クリック 2.個人設定 3.スクリーンセーバー 4.待ち時間を1分に設定 この状態で1分以上放置してもスクリーンセーバーが動作しません。 わかる方お願いします。

  • スクリーンセーバー等の有効性について

    現在、CRTの個人設定として、(1)スクリーンセーバー 3分 (2)ディスプレイの電源を切る 5分 (3)コンピュータをスリーブ状態にする15分 を設定しています。 60分位の音楽アルバムを聞いていると、5分で画面が暗くなり、音楽は鳴っている、7分位で「入力信号なし節電に入ります」のメッセージがでて、音楽停止です。 これは、(1)のスクリーンセーバーでは、音楽は停止しない。しかし(2)ではディスプレイの電源切りのため、音楽が切れると考えてよいのですか。なおウィルススキャンを長時間やっている時、途中で処理が止まってました。これは(3)のスリーブ状態にする が効いたためですか。(1)~(3)の影響範囲を教えてください、

  • スクリーンセーバー

    スクリーンセーバーが実行できるアイコンをデスクトップのオフィスツールバー上にボタンで登録してあるんですが、クリックしても動きません。以前はクリックすればすぐスクリーンセーバーが実行できたんですが...。ちなみに、スクリーンセーバーはパスワード保護で待ち時間は10分にしてあり、10分たてばスクリーンセーバーは動きます。また、恥ずかしながらスクリーンセーバーが実行できるアイコンの場所が分からなくなってしまいました。どなたか、回答宜しくお願いします。OSはXPです。

  • スクリーンセーバー

     スクリーンセーバーに アフターダークを 使い 5分で 始動するように セットいてるけど   これとは 別に Mac OS9.1 では 一定の 時間が来るか  何かの 操作を すると 画面が 急に 暗くなる ような セットが されているのでしょうか? たまに 急に 画面が暗くなって 元に戻らなくて こまり 再起動しています(^^;  どうすれば その セットが できるのか  どうすれば 解除が できるのか 教えてください  また これが あれば スクリーンセーバー ソフトを 入れている 意味は ないのでしょうか?

    • 締切済み
    • Mac

専門家に質問してみよう