プチIT化 PR

【Excel VBA】シートを2画面表示するマクロサンプル

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは、わたあめです。今日は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

「インデックスが有効範囲にありません」エラーが出たら

ウィンドウを閉じる処理の実行時に、以下のエラーが出る場合があります。

実行時エラー'9':
インデックスが有効範囲にありません。

この場合、Activeにする部分のブック名をファイル名(拡張子まで)で指定してみてください。以下のような形です。

Windows("ファイル名.xlsm:2").Activate
わたあめ
わたあめ
わたあめはこの方法で解決しました!いかがでしょうか?

さいごに

いかがだったでしょうか?少しでも参考になれば幸いです!それでは、また次の記事で!