VBA를 사용하여 Excel에서 그래픽 삭제


2

일부 워크 시트에는 그림이 표시되며 Excel에는 "Grafik 4"와 같은 이름이 표시됩니다. 이제 자동으로 삭제하고 싶습니다. 항상 같은 그림과 같은 그림 이름을 가진 200 개의 Excel 파일이 있습니다. 나는 이것을 이렇게 시도했다 :

Sub Clear_Images()
    Dim directory As String, fileName As String ', sheet As Worksheet, i As  Integer, j As Integer
    Dim wks As Worksheet
    Dim myPict As Shape

    Application.ScreenUpdating = False

    directory = "C:\Users\"
    fileName = Dir(directory & "*.xl??")

    Do While fileName <> ""
        Workbooks.Open (directory & fileName)

        For Each wks In ActiveWorkbook.Worksheets
            For Each myPict In wks.Shapes
                If myPict.Name = "Grafik 4" Then
                    myPict.Delete
                End If
            Next myPict
        Next wks
        Set wks = Nothing

        Workbooks(fileName).Close
        fileName = Dir()
    Loop

    Application.ScreenUpdating = True
End Sub

그러나 VBA에서 각 그림의 이름은 "Object x"입니다 (x는 1에서 열린 숫자 임). 누군가 그림의 실제 이름을 어떻게 읽을 수 있습니까?

프란츠

답변:


0

Excel 2013 (독일어)에서 빠른 테스트를 수행했습니다. 임의의 그림을 삽입했습니다. 그들은 "Grafik 4"와 같은 자동 이름을 얻었습니다.

여기에 이미지 설명을 입력하십시오

이 모양을 삭제하려면이 기술을 사용하십시오.

Sub test()

    On Error Resume Next
    Set image = ActiveSheet.Shapes("Grafik 4")
    On Error GoTo 0

    Debug.Print image.Name

    If Not image Is Nothing Then
        image.Delete
    End If

End Sub

엑셀를 인식 Shapes("Grafik 4")에도 불구하고 그것은 내부 이름의 Picture 4
당신이 볼 수 있습니다Debug.Print image.Name

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.