プチIT化 PR

【Excel】ウィンドウの整列での並び順を考察・解説します

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

おはようございます、わたあめです。今日はExcelの「新しいウィンドウで開く」という機能を使ってウィンドウを立ち上げたあと、「ウィンドウの整列」を使った時のウィンドウの並び順についての記事です。

ウィンドウの整列で左右に並べて表示をすると、意図しない整列順になることがありませんか?Sheet1(左)→Sheet2(右)で並べたいのに、画像のように思った通りの表示順にならないことがありました。

新しいウィンドウで開くの左右整列表示

並び順ってどのように決まるの?思った通りに並べるには?を、「左右に並べて表示」に絞ってにまとめてみました。おまけで、VBAマクロも紹介しています。それでは、いってみましょう!

わたあめが検証した内容となります。正確性に欠けることもあるかと思いますが、そこはご了承ください。

整列ルール:重なりの一番上(手前)にある順から左に並ぶ

新しいウィンドウを開いて、ウィンドウの整列で左右に並べて表示するを選択した場合、最後に開いたウィンドウから左に並べていく動きに見えました。言い換えると、Windowsが重なりの一番上(手前)にある順から左に並んでいくような動きです。

具体的には、ウィンドウを5つ立ち上げると、Book1:1,Book1:2,Book1:3,Book1:4,Book1:5…という名前でウィンドウが増えていきます。重なりは、最後に立ち上げたBook1:5のウィンドウが一番上で、Book1:4が一つ下…一番下はBook1:1のウィンドウとなっている状態です。

新しいウィンドウで開くの重なり順

この状態で左右に並べて表示にすると、重なりの一番上のウィンドウから左から並んでいく動きでした。

左右に並べて整列した場合の並び順

これをBook1:1→2→3→4→5の順にするには、ウィンドウを立ち上げた後に、ウィンドウの重なりを上からBook1:1→2→3→4→5の順にしておけば良いです!イメージは以下の通りで、ウィンドウの重なりの順を変更して、整列すれば解決です。

まずは、重なり順を以下図のように変更します。Book1:1が一番手前に来るように、左に並べたいウィンドウが手前に来るようにします。

この状態で左右に並べて表示すると、以下図のような並びになります。

これで、疑問の解決に少し役立てたでしょうか?

わたあめ
わたあめ
マクロでも実現したい!!

という方もいらっしゃるかと思います。次章から表示順を調整して左右に並べるVBAマクロのサンプルを紹介していきます。

ウィンドウの整列を行うサンプルマクロ

ウィンドウの整列で左右に並べて表示するサンプルマクロを紹介します。並び順を考慮せずにウィンドウを5つ立ち上げ、そのまま整列させるマクロと並び順を調整して整列させるマクロ2種を紹介します。

並び順を考慮せずに整列させるマクロサンプル

順番を考えず新しいウィンドウを4つ新たに立ち上げ、左右に並べるサンプルマクロです。以下の画像のような並びになります。

左右に並べて整列した場合の並び順

サンプルマクロは以下です。

Sub test()

' Sheet1を選択
 Worksheets("Sheet1").Activate
' 新しいウィンドウを4個立ち上げる
' (最初に開いているウィンドウを含めて5個のウィンドウ)
 ActiveWindow.NewWindow
 ActiveWindow.NewWindow
 ActiveWindow.NewWindow
 ActiveWindow.NewWindow
' ウィンドウを左右に並べて表示
 Windows.Arrange ArrangeStyle:=xlVertical

End Sub

 

並び順を考慮して整列させるマクロサンプル

並び順をBook1:1→2→3→4→5の順で表示させたい場合のマクロサンプルです。

マクロサンプルは以下です。ウィンドウを立ち上げた後に、ウィンドウの重なりを上からBook1:1→2→3→4→5の順にする処理を追加しています。

Sub test()

' 新しいウィンドウを4個立ち上げる
' (最初に開いているウィンドウを含めて5個のウィンドウ)
 ActiveWindow.NewWindow
 ActiveWindow.NewWindow
 ActiveWindow.NewWindow
 ActiveWindow.NewWindow
' 立ち上げたウィンドウの重なり順を変更
 Windows("Book1:5").Activate
 Windows("Book1:4").Activate
 Windows("Book1:3").Activate
 Windows("Book1:2").Activate
 Windows("Book1:1").Activate
' ウィンドウを左右に並べて表示
 Windows.Arrange ArrangeStyle:=xlVertical

End Sub
わたあめ
わたあめ
シート名やウィンドウの個数などは調整してみてくださいね!

さいごに

いかがだったでしょうか。ウィンドウの整列の並び順について調べてみました。並び順は上下などもありますが、それも恐らく重なりの順番で上から並べていく…というような処理になっているのではないかな?と思ったりしています。(それはまた後日調べるとして。)少しでもお役に立てていれば幸いです。それでは、また!