- ベストアンサー
VBAでスクリーンセーバーを起動させない方法
- 会社のパソコンですが、スクリーンセーバーが設定されていて、一定時間がたつと自動的に起動します。この設定は変更ができないようにされています。そこで、社内での案内用のデータを記載したエクセルのファイルを常時表示させる方法を探しています。
- 設定を解除することはできないため、スクリーンセーバーがじゃまになります。そこで、マクロを使用して画面を動かす方法を試しています。ただし、この方法ではスクリーンセーバーが起動してしまいます。
- もしも他にスクリーンセーバーを起動させない方法があるのであれば、教えていただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>たとえばどんなことでしょう? 私はSendKeysを一日打ちっぱなしの未経験ですので分かりません。 ただなんとなく、どこかで引っかかるかな?と思っただけです。 そちらでご自身がお使いのPCで一日何もなく過ごせれば問題ないのでは? 検証はそちらで行ってください。 シフトキーの場合はユーザーが矢印キーやマウスで操作していた場合に 一瞬画面がちらつく程度でしょうけど、選択状態になるかもしれません。 注意点は・・PCの盗難とか? ネットワークにつなげていて、社内の共有フォルダが丸見えとか。
その他の回答 (3)
- nicotinism
- ベストアンサー率70% (1019/1452)
むむっシンクライアントですか。。 128%門外漢なので降参です。 単なる想像ですが、もしかしたら キーボードからの信号は受け付けても プログラムからのキーストロークはシンクライアントの『親』が破棄 しているのかもしれません。(根拠は全くありません) やはりシステムの管理者か 構築した業者さんに相談すべき内容のような気もします。 (門外漢の独り言ですスルーしてください)
お礼
> やはりシステムの管理者か 相談してますが、規則の一点張りで話になりません。 > キーボードからの信号は受け付けてもプログラムからのキーストロークはシンクライアントの『親』が破棄 ノートPCは同じネットワークに繋いでますが、シンクライアント端末ではありません。 その2台で違う結果なのですから、たぶんそうなんでしょうね。 > ただ、来訪者がPCを操作していて『何かおかしい?』と感づく人もいるかもしれません。 毎秒、存在しないF16をたたいているからですか? たとえばどんなことでしょう? とりあえずはノートPCで代用していきますので注意すべき点を教えていただけるとありがたいです。 また、F16の代わりに sendkeys ("+") にしてシフトキーにしたらどうなりますか? 何度もすみません。
- nicotinism
- ベストアンサー率70% (1019/1452)
受付にパソコンが有って、来訪者はそれを操作して 内線番号や場所を確認する・・というイメージだとして。 超安直な案ですけど・・・・スクリーンセーバの設定で 3Dテキストか伝言板で『マウスを動かしてください』 じゃダメですよね? 復帰時にパスワードが要求されるとか。。 もう少しまともな案 OSやそのPCの設定者の権限によって回答も色々あるかもしれませんし そちらで効果あるか不明ですが、下記を メモ帳などで scrKill.vbs ファイル名は適当でかまいませんが拡張子はvbsにしてください。 set osh = WScript.CreateObject("WScript.Shell") do osh.sendkeys ("{F16}") wscript.sleep 1000 loop このファイルをダブルクリックで起動すると見た目は変化有りませんが タスクマネージャのプロセスタブにwscript.exe があるハズです。 終了する場合はこのタスクマネージャから右クリックで終了させてください。 いけるかも?と思ったらスタートアップにでも登録してください。 何のキーストロークを送るかはそちらでも探してください。 ページアップダウンはいただけないかと思います。 来訪者が画面を見ているときに忙しそうです。 またF16 はキーボードには無いかと思いますが機能します。 ただ、来訪者がPCを操作していて『何かおかしい?』と感づく人もいるかもしれません。 仮に『これで決まり』と考えられてもシステムの管理者には一言断っておいた方が良さそうです。 『却下』になるかもしれませんが、その際は素直に『妙案はありませんか。お願い』で。 セキュリティのためにはネットワークから物理的に切り離して、 そのためだけのPCにしておいた方が安全でしょう。CDドライブもUSBメモリもFDDも使用不可。
お礼
ありがとうございました。 やってみました。 Windows2000 Excel2000(ノートPC)では見事成功しました。 でも、残念ながらWindows7 Excel2010はスクリーンセーバーというか、ログインを促す画面ががたちあがってしまいました。 (Windows7 Excel2010はシンクライアント端末なので、スクリーンセーバーではないのかも知れません。) 使いたかったのはWindows7 Excel2010のデスクトップ機だったので残念です。
- mt2008
- ベストアンサー率52% (885/1701)
当方の環境(WindowsXP+Excel2010)では正常に動作しました。 環境によるのでしょうかね。 それにしても、10秒ごとのPageUP、PageDownは見ていて疲れます。 Shift「SendKeys ("+")」の方が良いのでは? UpとDownを交互に繰り返す必要もありませんし……。 Sub Sample() SendKeys ("+") mytime = Now + TimeValue("00:00:10") Application.OnTime mytime, "Sample" End Sub
お礼
さっそくありがとうございました。 やってみました。 でも、残念ながらスクリーンセーバが無情にもたちあがってしまいました。 Windows7 Excel2010 Windows2000 Excel2000 両方でためしましたがおなじでした。
お礼
何度もありがとうございます。 毎秒じゃなくともだいじょうぶじゃないかと思い Set osh = WScript.CreateObject("WScript.Shell") Do osh.Sendkeys ("{F16}") Wscript.Sleep 100000 Loop としてみました。 さっそく、ノートPCをネットワークから切り離し、今朝から実行しています。 それから4時間たってますが、いまのところ何の問題もおきていません。