エクセルVBAで使用するコードの備忘録。VBAで指定したウィンドウを最前面に表示するコード。このコードはエクセルワークブックだけでなく、フォルダなどの他のウィンドウを最前面に表示させるのにも利用できます。
AppActivateステートメント
指定したウィンドウを最前面に表示するにはAppActivateステートメントを利用します。AppActivateステートメントには引数として、最前面に表示したいウィンドウのタイトルを指定します。例えば、次のようなエクセルワークブックを最前面に持ってきたい場合には次のように指定します。
Call AppActivate("Book2")
ちなみに引数は”Book2 – Excel”としても動きます。存在しないウィンドウタイトルを指定するとエラーが出てしまうので注意してください。
サンプルコード
下記のサンプルコードでは、ウィンドウ名を文字列として指定してそのウィンドウを最前面に持ってくるようにしてあります。ちなみにExcelワークブックのウィンドウ名はWindowオブジェクトのCaptionというプロパティで取得できるので、ワークブックのWindowオブジェクトが取得済みの場合はCaptionプロパティを利用してそのウィンドウを最前面に持ってくることが可能です。
ウィンドウ名を指定して最前面に移動させる
Public Sub MoveWindowFront1()
Call AppActivate("[ウィンドウ名]")
End Sub
現在のワークシートを最前面に移動させる
現在のワークブックのウィンドウを取得するために、Thisworkbookオブジェクト下のWindowsオブジェクトを利用しています。
Public Sub MoveWindowFront2()
'--- Windowオブジェクトの取得 ---'
Dim wds As Window
Set wds = ThisWorkbook.Windows(1)
Call AppActivate(wds.Caption)
End Sub