こんにちは、わたあめです。今日はExcelの「新しいウィンドウで開く」でウィンドウを二つ開き、同じブックの2つのシートをそれぞれ表示するというマクロサンプルを紹介したいと思います。
このように同じブックのSheet1とSheet2を別画面で左右に並べて開くサンプルマクロになります。Sheet1とSheet2の表示順(左右の位置)も指定するサンプルも用意しているので、是非見て行ってください!それでは、いってみましょう!
シートを2画面表示するサンプルマクロ
早速マクロサンプルを載せます。既にウィンドウが一つ立ち上がっているので、もう一つ新たにウィンドウを立ち上げ、ウィンドウを左右に整列させるというマクロになります。
Sub multiWindow()
' Sheet1を選択
Worksheets("Sheet1").Activate
' 新しいウィンドウを立ち上げる
ActiveWindow.NewWindow
' Sheet2を選択
Worksheets("Sheet2").Activate
' ウィンドウを左右に並べて表示
Windows.Arrange ArrangeStyle:=xlVertical
End Sub
実行後、Sheet2が左画面に、Sheet1が右画面となりました。
この並びとなる理由は別記事で詳しく解説しています。理由はおいておいて、Sheet1が左に、Sheet2を右に表示順番を指定したい場合もあるかもしれません。
2画面表示で左右の開く位置を指定する方法
左右にウィンドウを整列させたときに、Book1:1のSheet1を左側にBook1:2のSheet2を右側にするマクロサンプルは以下です。ウィンドウを立ち上げた後に、ウィンドウを選択して重ね順をBook1:1が上に来るようにしています。※上のものから左に整列される。
Sub multiWindow()
' Sheet1を選択
Worksheets("Sheet1").Activate
' 新しいウィンドウを立ち上げる
ActiveWindow.NewWindow
' Sheet2を選択
Worksheets("Sheet2").Activate
' Sheet1のウィンドウを選択してウィンドウが上(手前)になるように
Windows("Book1:1").Activate
' ウィンドウを左右に並べて表示
Windows.Arrange ArrangeStyle:=xlVertical
End Sub
実行した結果、以下画像のような並びとなりました。
では、新しく開いたウィンドウを閉じるにはどうすれば良いのでしょうか?次章にサンプルマクロを載せておきます。
開いた新しいウィンドウを閉じるサンプルマクロ
閉じたい方のウィンドウ名を指定し選択(アクティブ)状態にして、Closeすればウィンドウを閉じる事ができます。以下マクロサンプルでは、Book1:2を選択(アクティブ)状態にして、閉じています。
Sub multiWindowClose()
' 閉じたい方のウィンドウ名を指定、アクティブ状態に
Windows("Book1:2").Activate
' 閉じる
ActiveWindow.Close
End Sub
「インデックスが有効範囲にありません」エラーが出たら
ウィンドウを閉じる処理の実行時に、以下のエラーが出る場合があります。
この場合、Activeにする部分のブック名をファイル名(拡張子まで)で指定してみてください。以下のような形です。
さいごに
いかがだったでしょうか?少しでも参考になれば幸いです!それでは、また次の記事で!