2017-01-08 8 views
2

VBAで特定のグループを非表示にするボタンを作成したいと思います。私が持っているコードは、指定されたレベルにあるすべてのグループを非表示にしたり再表示されます:特定のグループを表示/非表示解除する

Sub Macro1() 
ActiveSheet.Outline.ShowLevels RowLevels:=2 
End Sub 

は、私はちょうど私がそれを行うことができますどのようにグループ化レベル2に第2のグループを再表示したいとしましょうか?

+0

ここに提案があります。この投稿では、アクティブな行のレベルを取得します。http://stackoverflow.com/questions/41528780/hide-unhide-specific-group#行をループしてから、2番目のグループの最初の行と最後の行を見つける必要があります。次に、その範囲が非表示になっているかどうかをテストします。 –

+0

何のグループ? – KyloRen

+0

グループは、同じレベルの連続した行になります。 –

答えて

0

「グループ化レベル2の第2グループ」は行7-10です。そして、このコードは、そのグループを再表示します:

ActiveSheet.Rows(10).ShowDetail = True 

しかし、それは/非表示グループを再表示しますトグル機能にそれを回すためにおそらく最高です。以下は、アウトラインがあるシートと行を渡してグループを表示/非表示する汎用トグル関数(ToggleOutlineGroup)です。行は、別のサブグループの一部でない場合は、グループ内の任意の行にすることができます。私は単純化のためにグループの最後の行を使いました。サブfooは、関数を呼び出す方法の例です。

Sub foo() 

    ToggleOutlineGroup Sheet1, 10 

End Sub 


Sub ToggleOutlineGroup(sht As Worksheet, row As Long) 

    sht.Rows(row).ShowDetail = Not (sht.Rows(row).ShowDetail) 

End Sub 
関連する問題