Excel VBAで、アウトライン設定をしている行や列のうち、指定した特定の行や列だけ、アウトラインを展開したり、折り畳んだりしたいと思うことは良くあると思う。そこで調べてみたのだが、よく使われるであろう、Outline.showLevels メソッドでは、行・列のレベル(=折り畳みの深さ?)でしか、展開や折り畳みの指定ができないようだ。(なお、アウトラインの展開・折り畳みはマクロの記録機能を使っても記録されない。)
別のやり方を探していたところ、ExecuteExcel4Macro を使った方法があることがわかった。ExecuteExcel4Macro を使うということは、古いマクロを使うということなので、お勧めのやり方とはいえないのは確かだが、他にやり方がなさそうなので、やむなしである。
例えば以下の画像のようにアウトラインを設定している時、1~5行目のアウトラインだけを閉じたい時は
Call Application.ExecuteExcel4Macro("SHOW.DETAIL(1,1,FALSE)")
とすればよい。
なお、この場合、対象「1」(行に対するグループを操作)、位置「1」と設定しているので、位置の「1」は1行目と解される。位置を「2」(2行目)としても、同じ動作をする。
