シートをグループ化する


シートをグループ化するには次のようにします。

Sub Sample1()
    Sheets(Array("Sheet1", "Sheet3")).Select
End Sub

これは、Sheet1とSheet3をグループ化する操作をマクロ記録すると生成されるコードです。

このように、シートをグループ化するときは一般的にArray関数を使ってグループ化したいシートの配列を作りますが、次のようなコードでグループ化することも可能です。

Sub Sample2()
    Sheets("Sheet1").Select
    Sheets("Sheet3").Select False
End Sub

あまり知られていませんが、Selectメソッドには「Replace」という引数を指定できます。引数ReplaceにFalseを指定すると、直前の選択状態を解除しないで、新しいオブジェクトが選択状態になります。つまり、アクティブシートがSheet1の状態で「Sheets("Sheet3").Select False」を実行すると、Sheet1の選択が解除されないでSheet3も選択されるわけです。これは、Sheet1とSheet3をグループ化したのと同じことになります。

ただし、Selectメソッドの引数Replaceは、操作の対象となるオブジェクトによって指定できないケースもあります。残念ながらRangeオブジェクトでは使用できません。グラフやオートシェイプなどを選択するときには使えますが、やはり便利なのはシートのグループ化でしょう。ちなみに、すべてのシートをグループ化するときは「Sheets.Select」でもOKです。

なお、グループ化したシートの操作方法は「現在選択されているシートを操作する」をご覧ください。