他のブックにあるマクロを呼び出したとき、そのブックを最小化したい

本日唐突に、他のブックにあるマクロを呼び出したとき、
そのブックを最小化したい事案に遭遇した。
f:id:Infoment:20191023220722p:plain

あれこれ捏ね繰り回し、結果、これに落ち着いた。

Sub Sample()
    ThisWorkbook.Activate
    ActiveWindow.WindowState = xlMinimized
End Sub

もっと単純にできたような気がするのだが、気のせいだったのだろうか。

ところで、複数のブックが起動している状態で、これを実行してみた。

Sub Sample()
    ThisWorkbook.Activate
    ActiveWindow.WindowState = xlMinimized
    ThisWorkbook.Activate
    Debug.Print ActiveWindow.WindowState
End Sub

すると、結果はこうなった。
f:id:Infoment:20191023221459p:plain

  • 4140とはつまり、xlMinimized のこと。

従って、画面いっぱいに広がっているExcelブックがあったとしても、実はそれはActiveではないということになる。

「Activeなんちゃら」で、いつも迷ったり失敗したりする。都度、変数にセットするなどの処置は重要だなと、改めて思った次第です。

参考まで。