最小化したウインドウを元に戻す

Windows+dやWindows+mで最小化したウインドウを元に戻す手段を紹介します。

VBScriptを使います。

スポンサーリンク

Windows+DやWindows+Mによる最小化

画面にウインドウをたくさん開いている状態で、デスクトップにあるファイル等を開きたい場面がしばしば発生します。このようなとき、僕は、Windows+DWindows+Mでウインドウを最小化させてデスクトップを表示し、目的とするファイルを開きます。

でも、その後が面倒です。

最小化させた直後であれば、Windows+DならWindows+D、Windows+MならWindows+Shift+Mで元に戻すことができます。

ただ、ファイルを開くような操作をすると、もう元に戻すことができません。

必要だからウインドウをたくさん開いていているのであって、戻せない仕様にはかなりのストレスを感じます。

Alt+Tabを使えば1ウインドウずつなら戻せる

最小化されたウインドウを戻す方法として、タスクバーのアイコンをクリックする方法があります。

また、Alt+Tabを使ってウインドウを切り替えて、手を放す方法でも1ウインドウなら戻せます。

後者の方法であれば、VBScriptを使って自動化することができます!

VBScriptを用いた解決策

次のコードをコピペして、VBScriptとしてお使いください。これで、最小化されたウインドウを元に戻すことができます。

VBScriptを使ったことのない方には、簡単な使い方を後述しますので、ご安心ください。

調整個所は次の2か所です

1)ウインドウを沢山使っていて、このコードでは全部開ききらない場合の調整個所
For i = 1 to 20の「20」という値を20~100くらいの範囲で調節してください

この値は開くウィンドウの最大数です。

2)高速のPCを使っている方の調整個所
動作安定待ち時間が小さいと、うまく動かない場合があります。
WScript.Sleep 100の「100」という値を100~500くらいの値で調節してください。
この数値は、ミリ秒ですので、1000にすると、1秒ごとにキーコードを送信することになります。

ループ数が20回でも1回1秒だと、実行終了までの時間がかなり長く感じます。
僕のPCでは、50ミリ秒ではうまく動きませんでした。どうにか動く値の倍くらいの数にするのがおすすめです。

Option Explicit	' 宣言した変数のみを使うためのおまじない

Dim i		' ループカウンタ
Dim WshShell	' シェルオブジェクト

' シェルのインスタンス
Set WshShell = CreateObject("WScript.Shell")

' 適当な数だけループ
For i = 1 to 20
	' Alt + Shift + Tabを送信
	WshShell.SendKeys ("%+{TAB}")
	' 動作安定待ち
	WScript.Sleep 100
Next

' オブジェクトの開放
Set WshShell = Nothing

実際に動作させてみると、Alt+Tabではウインドウが2つくらいしか開きませんでした。

そこで、このVBScriptではAlt+Shift+Tabを送信し、ウインドウを後方から切り替えることによって全ウインドウが開くようにしています。

ところで、僕のPCでは、ある特定のソフトがバックグラウンドで動いていて、動作を阻害していました。手作業でAlt+Shift+Tabを入力したところ、ソフトを特定することができたので、アンインストールしたところ、正常動作するようになりました。

VBScriptの使い方

  • メモ帳を起動する
  • 上記コードをコピーする
  • 起動したメモ帳に貼りつける
  • 任意のファイル名(例:「最小化を戻す」)を付けて保存する
  • ファイルの拡張子を「txt」から「vbs」に変更する
    →拡張子が見えない場合はWindowsのバージョンに応じた設定が必要です
    →Windows10なら、「エクスプローラ→表示タブ→隠しファイルのチェックボックスにチェック」で見えるようになります
    →拡張子を変えるとファイルのアイコンがS字型のようなアイコンに変わります
  • ウインドウを戻したいとき、このvbsファイルをダブルクリックします

コメント

タイトルとURLをコピーしました