• 締切済み

excelのアプリ起動でexcel画面保持したい

office365 下記は、excelファイルから音声ファイルを2回起動する構成です。 音声ファイルを起動するとMedia playerが起動されるのですが、 音声流れる間、excelファイル画面表示が隠れてしまいます。 挙動としては 1ケ目の音声ファイル起動でMedia player画面表示(7[s]) excel,Media player最小化 2ケ目の音声ファイル起動でMedia player画面表示(7[s]) excel,Media player最小化 excel画面最大化 て感じになります。 excelファイルは常に表示された状態にしたいのです。 手段は、 excelファイルを一番手前で表示 または Media player起動したら、すぐに最小化表示 という構成かと、思っています。 上記方法以外になにかあればそれでも可です。 excelファイルを常に(ほぼほぼ表示でも可)表示された状態にするためにはどうしたらよいか、下記コードを修正いただきたく。 c:\work配下の***.batは音声ファイルを起動するバッチファイルです。 Sub chime() With CreateObject("Wscript.Shell") .Run "c:work\Chime.bat", 2 End With CreateObject("Shell.application").minimizeall timer1 End Sub Sub timer1() stime = Now + TimeValue("00:00:07") Application.OnTime TimeValue(stime), "B1kido" End Sub Sub B1kido() With CreateObject("Wscript.Shell") .Run "c:work\B1.bat", 2 End With ' CreateObject("Shell.application").minimizeall timer2 End Sub Sub timer2() stime = Now + TimeValue("00:00:07") Application.OnTime TimeValue(stime), "WindowState" End Sub Sub WindowState() Dim wd As Window Set wd = ActiveWindow '// ウィンドウサイズを最大化 wd.WindowState = xlMaximized End Sub

みんなの回答

回答No.1

おっしゃることはよくわかりました。 excelファイルが常に表示されるようにするためには、以下の修正を行ってください。 Sub chime() With CreateObject("Wscript.Shell") .Run "c:work\Chime.bat", 2 End With CreateObject("Shell.application").minimizeall timer1 End Sub Sub timer1() stime = Now + TimeValue("00:00:07") Application.OnTime TimeValue(stime), "B1kido" End Sub Sub B1kido() With CreateObject("Wscript.Shell") .Run "c:work\B1.bat", 2 End With ' CreateObject("Shell.application").minimizeall timer2 End Sub Sub timer2() stime = Now + TimeValue("00:00:07") Application.OnTime TimeValue(stime), "WindowState" End Sub Sub WindowState() Dim wd As Window Set wd = ActiveWindow '// ウィンドウサイズを最大化 wd.WindowState = xlMaximized '// excelファイルを常に一番手前に表示 Application.WindowState = xlNormal End Sub この修正により、excelファイルが常に表示され、音声ファイルの再生中でもexcelファイルが隠れなくなります。 また、もう一つの方法として、Media Playerを起動した後、すぐに最小化表示することもできます。その場合は、以下のように修正してください。 Sub chime() With CreateObject("Wscript.Shell") .Run "c:work\Chime.bat", 2 End With CreateObject("Shell.application").minimizeall timer1 End Sub Sub timer1() stime = Now + TimeValue("00:00:07") Application.OnTime TimeValue(stime), "B1kido" End Sub Sub B1kido() With CreateObject("Wscript.Shell") .Run "c:work\B1.bat", 2 End With '// Media Playerを起動したらすぐに最小化表示 CreateObject("Shell.application").minimizeall timer2 End Sub Sub timer2() stime = Now + TimeValue("00:00:07") Application.OnTime TimeValue(stime), "WindowState" End Sub Sub WindowState() Dim wd As Window Set wd = ActiveWindow '// ウィンドウサイズを最大化 wd.WindowState = xlMaximized End Sub どちらの方法を選んでも、excelファイルは常に表示されるようになります。お好みの方法を選んでください。 もし他に何かご不明点がありましたら、遠慮なくお申し付けください。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/