양식 컨트롤을 제외한 Excel 워크시트의 모든 도형 삭제
버튼에 연결된 매크로가 워크시트의 사용자 입력 매개변수를 기반으로 동적 모양을 그리는 엑셀 워크시트가 있습니다.
시트를 정리하기 위해 새 매크로를 작성하거나 워크시트의 모든 모양을 삭제하려고 합니다.
아래 코드를 사용해보았는데 모양이 모두 삭제되는 것은 맞지만 버튼 형태의 컨트롤도 이 과정에서 삭제됩니다.워크시트의 모양(화살표, 텍스트 상자, 타원 등)만 제거할 수 있는 쉬운 방법이 있습니까?정말 고마워요!!!
Sub DeleteAllShapes()
Dim Shp As Shape
For Each Shp In ActiveSheet.Shapes
Shp.Delete
Next Shp
End Sub
자동 모양 및 텍스트 상자만 삭제하려면 다음을 사용할 수 있습니다.
Sub DeleteAllShapes()
Dim Shp As Shape
For Each Shp In ActiveSheet.Shapes
If Shp.Type = msoAutoShape Or Shp.Type = msoTextBox Then Shp.Delete
Next Shp
End Sub
또는 반대로 작업하여 삭제하지 않을 유형을 지정할 수도 있습니다.열거된 유형을 사용할 수 있지만 유형 이름을 사용하는 것이 더 읽기 쉽습니다.다음 토막글에서는 폼 컨트롤 및 OLE 컨트롤 개체를 제외한 모든 항목을 삭제합니다.
Sub DeleteAllShapes()
Dim Shp As Shape
For Each Shp In ActiveSheet.Shapes
If Not (Shp.Type = msoOLEControlObject Or Shp.Type = msoFormControl) Then Shp.Delete
Next Shp
End Sub
MSO Shape Type의 전체 목록입니다.http://msdn.microsoft.com/en-us/library/office/aa432678(v=office.12).aspx
Ron de Bruin은 이 질문을 접하는 다른 사람과 관련이 있을 수 있는 좋은 스니펫 모음을 가지고 있습니다.http://www.rondebruin.nl/controlsobjectsworksheet.htm
도면 객체를 삭제하려는 것처럼 들립니다.
Jamie Bull의 훌륭한 조언을 바탕으로 먼저 Ron de Bruin 웹사이트의 관련 페이지에 대한 업데이트된 링크를 소개합니다.
그리고 두 번째로, 이 한 줄이 효과가 있다는 것을 알게 될 수도 있습니다.
ActiveSheet.DrawingObjects.Delete
언급URL : https://stackoverflow.com/questions/12789499/delete-all-shapes-in-excel-worksheet-except-form-controls
'programing' 카테고리의 다른 글
$filter를 Microsoft Graph Excel API와 함께 사용 (0) | 2023.10.25 |
---|---|
Tymeleaf의 각 연산자에 대해 (0) | 2023.10.25 |
prependId="false" 중단이 있는 UI 양식 (0) | 2023.10.25 |
종속성 주입이란? (0) | 2023.10.25 |
jQuery에서 목록을 선택하는 옵션을 추가하는 방법 (0) | 2023.10.25 |