Entfernen von Bildern für ein Arbeitsblatt in VBA (Microsoft Excel)
Rob schrieb über ein Problem beim Entfernen von Bildern aus einem Arbeitsblatt. Er hat Makros, die ein Bild (eine Signatur) als Form hinzufügen, aber wenn er später versucht, das Bild zu löschen, kann er es nicht in der Shapes-Sammlung finden.
Es gibt ein paar Dinge zu überprüfen. Zunächst sollten Sie sicherstellen, dass Sie zum Löschen die richtige Syntax verwenden. Stellen Sie sicher, dass Sie das Blattobjekt explizit in Ihren Code aufnehmen.
Die folgende Zeile funktioniert beispielsweise nicht:
Shapes(1).Delete
Stattdessen müssen Sie das Blatt mit einem Code angeben, der einer der folgenden Zeilen ähnelt:
ActiveSheet.Shapes(1).Delete Sheets("Sheet1").Shapes(1).Delete Sheets(1).Shapes("Signature").Delete
Wenn Sie feststellen, dass sich das erwartete Bild nicht in der Shapes-Sammlung befindet, hat Excel das Bild möglicherweise (aus seltsamen Gründen, die nur Excel bekannt sind) in eine andere Sammlung verschoben, z. B. in die Pictures-Sammlung. Wenn Sie dies vermuten, verwenden Sie das folgende Makro:
Sub WhatAmI() Dim sTemp As String sTemp = "You selected this type of object: " & TypeName(Selection) sTemp = sTemp & vbCrLf sTemp = sTemp & "It's name is " & Selection.Name MsgBox sTemp End Sub
Wählen Sie das Signaturbild aus und führen Sie das Makro aus. Sie sollten ein Meldungsfeld sehen, das den ausgewählten Objekttyp sowie dessen Namen angibt.
Sie können die Informationen dann verwenden, um Ihr Makro so zu ändern, dass das Bild wie gewünscht gelöscht wird.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2480) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: