アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelマクロについての質問です。
教えてください。

"グループとアウトラインの設定"を使用して、あるシート上の列or行をグループ化しています。
このグループ化された列or行について、ある列or行が
「展開されている状態か?(表示)」
       なのか
「閉じられている状態か?(非表示)」
Excelのマクロで判断するにはどうしたら良いでしょうか?
教えてください。

質問の背景は、
「あるグループ化された列が表示されている」ならば、
「他のグループ化された行を表示する」っといった機能を実現したいと考えています。

また、グループのアウトラインで上記が不可能な場合でも、
単純な列or行の表示・非表示で同様の状態管理が可能であれば
その方法を教えてください。

皆様、宜しくお願いします。

A 回答 (1件)

こんばんは。



>「展開されている状態か?(表示)」
>       なのか
>「閉じられている状態か?(非表示)」

それは、至って単純な方法でしかないと思います。

以下は、列に対してトグルになります。

Sub TestShowLevel()
  Dim i As Integer
  Dim j As Integer
  Dim r As Range
Static k As Integer
  
  On Error Resume Next
  With ActiveSheet
   '列の場合
    Set r = Range("A1").CurrentRegion
    '行に対して、表示しているセルの数を数え
    i = r.Rows(1).SpecialCells(xlCellTypeVisible).Count
    '実際のセルの数を数えます。
    j = r.Rows(1).Cells.Count
    'その差が出れば、列が折りたたまれているということです。
    If j - i > 0 Then
      k = k + 1
    Else
      k = 1
    End If
    .Outline.ShowLevels RowLevels:=0, ColumnLevels:=k
  End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
何とかできそうです。

お礼日時:2008/04/25 18:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています