質問

次のステートメントを使用して、ExcelブックにTableStyleを追加しました。

ActiveWorkbook.TableStyles.Add("PivotTable SS")

次を使用して削除できます:

ActiveWorkbook.TableStyles("PivotTable SS").Delete

削除するかどうかを決定する前に、すでに存在するかどうかをプログラムで確認するにはどうすればよいですか?

現在、すべてのテーブルスタイルをループし、選択的な削除を実行しています:

    For Each ts In ActiveWorkbook.TableStyles
        If ts.Name = "PivotTable Style 1" Then
            ts.Delete
        End If
    Next ts

ただし、これには時間がかかります。ピボットテーブルの存在を確認し、ループせずに削除するにはどうすればよいですか?

ありがとう:)

役に立ちましたか?

解決

スタイルを変数に割り当ててみることができます。変数がNothingの場合、スタイルは存在しません。スタイルが存在せず、変数を割り当てようとすると、エラーメッセージが表示されるため、エラー処理を一時的に停止する必要があります。

Sub DeleteAStyle()

    Dim ts As TableStyle

    On Error Resume Next
    Set ts = ActiveWorkbook.TableStyles("PivotTable Style 1")
    On Error GoTo MyUsualErrorHandler

    If Not ts Is Nothing Then
        ts.Delete
    End If

End Sub
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top