0
シートに動的に追加されたチェックボックスとラベルを削除するルーチンを作成しました。ただし、すべてのコントロールを確実に削除するわけではありません。もう一度追加する前に完全に削除する必要があります。Excel 2003、すべてのOLE /シェイプコントロールを削除しないVBA
は、ここに私のルーチンです:
Public Sub removeOLEtypesOfType()
On Error Resume Next
Dim intPass As Integer, objShape As Shape
For intPass = 1 To 2
For Each objShape In ActiveSheet.Shapes
Dim strName As String
strName = objShape.Name
If Mid(strName, 1, Len(CHECKBOX_PREFIX)) = CHECKBOX_PREFIX _
Or Mid(strName, 1, Len(LABEL_PREFIX)) = LABEL_PREFIX _
Or Mid(strName, 1, 5) = "Label" Then
objShape.Delete
End If
Next
Next
End Sub
は、私は唯一のオブジェクトが削除されることを保証するためにループのための2つのパスを追加しましたが、でもこれは、残りの項目は削除されません。私が持っている問題は、ワークブックで削除されなかったコントロールで終わることです。私は、チェックボックスの場合に名前がで始まっているチェックボックスとラベルを削除しようとしている
:
Public Const CHECKBOX_PREFIX As String = "chkbx"
ラベルは接頭辞が付いてい:第3回検索はとの比較
Public Const LABEL_PREFIX As String = "lbl"
「ラベル」は掃除しようとしていますが、それでもすべてを捕らえるわけではありません。
範囲内のすべてのシェイプ/オブジェクトを削除する方法はありますか?
固定