많은 모양을 가진 Excel 워크 시트를 고려하십시오. 이 개 모양을 선택하려면 :패턴과 일치하는 모든 Excel 그리기 레이어 모양 삭제
ActiveSheet.Shapes.Range(Array("Freeform 314", "Freeform 278")).Select
목표는 "자유형"로 시작하는 모든 모양을 삭제하는 것입니다.
MS VBScript 정규식 5.5을 참조하는 예제가 있지만 특정 셀에는 셰이프가 없습니다. 양이나 특정 모양의 숫자는 거의 알려지지 않았습니다. 그래서 추한 솔루션은 문자열 이름을 무차별 적으로 만들 수 있습니다. 반면에 당신이 우아한 해결책을 얻기 위해 나를 도울 수 있기를 바랍니다.
아래 코드는 작동하지 않지만 문제를 더 잘 이해할 수 있습니다. 당신이
Dim shape as Variant
For each shape in ActiveSheet.Shapes
If instr(1, shape.Name, "Freeform") <> 0 then shape.delete
Next shape
을 테스트하고 작동
을 가면이 훨씬 훨씬 쉬울 것 같은Sub DeleteShapes()
Dim re As New RegExp
re.Pattern = "Freeform*"
Dim cell As Range
For Each cell In ActiveSheet.Shapes.Range(Array(re.Pattern)).Select
Selection.delete
Next cell
End Sub
고맙습니다.이 솔루션을 유용합니다. –