<スポンサーリンク>
グループ化されていない行や、列をungroupすると、
VBAでエラーになります。
今回は、その対処法を紹介したいと思います。
グループの階層(レベル)を確認し、ungroupメソッドが失敗しました。を防ぐ方法
ungroupメソッドが失敗しました。
となるのは、
グループ化されていない行や列をグループ解除しようとした場合
となります。ですので、
グループ解除をするためには、グループ化されているか先に判断する必要があります。
そんな時に使えるのが、
行.outlinelevel
となります。
簡単にプログラムを作って、
A列に、レベルを表示させるプログラムを作成してみました。
Sub GROUP確認()
For I = 1 To 10
A = Cells(I, 20).EntireRow.OutlineLevel
Cells(I, 1) = "行" & I & "のレベルは" & A
Next
End Sub
結果は下記の通り、きちんとレベルが表示されていることがわかります。
ちなみに、グループ化されていない行がレベル1となりますので、
ungroupのエラーを防ぐためには、IF文を使って、
IF 行.outlinelevel>=2 THEN
行.ungroup
END IF
とする必要があります。
また、
行.clearoutline
を使うことで、グループ化をすべて解除することが可能ですので、
合わせて知っておくといいかと思います。
コメント欄