VBAでのアウトラインの取り扱いについて、簡単にまとめてみた。
まずアウトラインのレベルについて。
アウトラインが設定されている場合、全て閉じた状態がLevel1、全て開いた状態のレベルはアウトラインの状態(深さ)による。やってみればわかるが、Excel2010ではレベル8が最高。(それ以降のバージョンでは、もっと深いアウトラインが設定できるようだ。)
【グループ化(アウトラインレベルを下げる)】
行のグループ化: Rows(行範囲).Group
列のグループ化: Columns(列範囲).Group
ex.
Rows("1:10").Group
Columns("M:W").Group
【グループ化の解除(アウトライン レベルを上げる)】
行のグループ化解除: Rows(行範囲).Ungroup
列のグループ化解除: Columns(列範囲).Ungroup
但し、グループ化されていない時にUngroupを使うと、「実行時エラー'1004':RangeクラスのUngroupメソッドが失敗しました」というエラーになるので注意!
【アウトラインを全て閉じてLevel1だけ表示する(全て隠した状態)】
行 : ActiveSheet.Outline.ShowLevels RowLevels:=1
列 : ActiveSheet.Outline.ShowLevels ColumnLevels:=1
【アウトラインの解除(グループ化した範囲を解除する)】
例えば、以下の例だと、シート全体のアウトラインが解除される。
↓
Cells.ClearOutLine
備忘録的なめちゃざっくりしたまとめ方だが、以上なり。