Rimozione di immagini per un foglio di lavoro in VBA

Rob ha scritto su un problema che stava avendo la rimozione di immagini da un foglio di lavoro. Ha macro che aggiungono una foto (una firma) come forma, ma quando cerca poi di eliminare l'immagine, non si riesce a trovare nella collezione Shapes.

Ci sono un paio di cose da verificare. Prima di tutto, è necessario assicurarsi che si sta utilizzando la sintassi corretta per fare l'eliminazione. Controllare per assicurarsi che si sta esplicitamente incluso l'oggetto foglio nel codice. Per esempio, la seguente riga non funzionerà:

Forme (1) .Delete

Invece, è necessario specificare il foglio, utilizzando il codice simile a una delle seguenti linee:

ActiveSheet.Shapes (1) .Delete
Sheets ("Sheet1"). Forme (1) .Delete
Sheets (1) .Shapes ("Firma"). Delete

Se si stabilisce che l'immagine non è previsto nella raccolta Shapes, allora è possibile che Excel (per ragioni strane note solo a Excel) trasferisce l'immagine di una collezione diversa, come ad esempio la raccolta di immagini. Se ritieni che questo, quindi provare a utilizzare la seguente macro:

Sub WHATAMI ()
Dim sTemp As String

sTemp = "Hai selezionato questo tipo di oggetto:" & TypeName (Selezione)
sTemp = sTemp & vbCrLf
sTemp = sTemp e "Il suo nome è" & Selection.Name
MsgBox sTemp
End Sub

Selezionare l'immagine della firma, quindi eseguire la macro. Si dovrebbe vedere una finestra di messaggio che indica il tipo di oggetto selezionato, insieme con il suo nome. È quindi possibile utilizzare le informazioni per modificare la macro in modo da eliminare l'immagine, se lo desideri.

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (2480) si applica a Microsoft Excel 97, 2000, 2002, e 2003. È possibile trovare una versione di questo suggerimento per l'interfaccia ribbon di Excel (Excel 2007 e versioni successive) qui: Rimozione di foto per un foglio di lavoro in VBA.