[ VBA ] エクセルを最大化および最小化する ( Application.WindowState / MinimizeAll )

Pocket

エクセルで計算させた後に、できる限り大きな画面で表示されるように最大化表示したい場合があります。ここでは、VBAを使ってエクセルを最大化、最小化するサンプルを掲載します。

スポンサーリンク

エクセルを最大化および最小化するサンプル

Application.WindowState プロパティに xlMaximized ( 最大化 )、xlMinimized ( 最小化 ) を設定しています。

    Application.WindowState = xlMaximized
    
    MsgBox "最大化しました"
    
    Application.WindowState = xlMinimized

    MsgBox "最小化しました"

たったのこれだけで簡単に最大化、最小化を行うことができます。なお、「VBA エクセルを全画面表示する(Application.DisplayFullScreen)」で示したように、リボンメニューも非表示にしてなるべくシートの表示枠を大きく確保したい場合には、Application.DisplayFullScreen プロパティを使って全画面表示させることができます。

期待する動作とならないと思われるサンプルスクリプト

参考:Application.WindowState プロパティ (Excel) 

上記の参考リンクには、以下のようなサンプルコードが別途掲載されていますが、管理人の環境 Excel 2013 では期待する動作なのか判断できませんでした。良くわからなかったです。Application.UsableHeight と Application.UsableWidth の値がいまいちピンときませんでした。Excel が画面の左上には配置されるのですが、横と縦は画面の途中までしか広がりませんでした。どなたかよろしければ教えてください。

可能な限り大きくとありますが、随分と余裕があるように思います。

    ' 次の使用例は、アクティブ ウィンドウを可能な限り大きく表示します。ウィンドウの最大化とは異なる動作です。
    
    With ActiveWindow 
       .WindowState = xlNormal 
       .Top = 1 
       .Left = 1 
       .Height = Application.UsableHeight 
       .Width = Application.UsableWidth 
    End With 

開いているウィンドウをすべて最小化する

次は、デスクトップ上で表示しているウィンドウ ( 他アプリケーション ) をすべて最小化してデスクトップを表示するサンプルスクリプトになります。最小化したウィンドウを元に戻す方法もご確認ください。

このサンプルは、以下のように Excel シート上にボタンを配置して確認しています。

サンプル画面

サンプル画面

サンプルスクリプト


Private Sub CmdToggleDesktop_Click()

    ' デスクトップを表示
    ' 自身を含めたすべてのウィンドウがタスクバーに移動する
    CreateObject("Shell.Application").ToggleDesktop
    
End Sub

Private Sub CmdMinimizeAll_Click()
    
    ' 自身を含めたすべてのウィンドウが最小化される
    ' 最小化ボタンがないウィンドウはそのままの状態
    CreateObject("Shell.Application").MinimizeAll
    
End Sub

Private Sub CmdUndoMinimizeAll_Click()
    
    ' 最小化したウィンドウを元に戻す
    ' デスクトップの表示(ToggleDesktop)でタスクバーに移動した
    ' ものは元には戻らない
    CreateObject("Shell.Application").UndoMinimizeAll

End Sub

このサンプルスクリプトを実行すると、ウィンドウが最小化されたり、元に戻ったりすることが確認できます。

参考
スポンサーリンク


Pocket

One thought on “[ VBA ] エクセルを最大化および最小化する ( Application.WindowState / MinimizeAll )”

  1. Pingback: VBA エクセルを全画面表示する(Application.DisplayFullScreen) – 偏差値40の高い壁

Leave a Comment

Your email address will not be published. Required fields are marked *