Come rimuovere immagini da un foglio di lavoro in VBA

Riccardo ha scritto di un problema che stava riscontrando nel rimuovere immagini da un foglio di lavoro. Già dispone di macro che aggiungono un’immagine (una firma) come forma, ma quando successivamente tenta di eliminare l’immagine, non riesce a trovarla nella collezione Shapes.

Ci sono un paio di cose da controllare. Prima di tutto, dovresti assicurarti di utilizzare la sintassi corretta per eseguire l’eliminazione. Assicurati di includere esplicitamente l’oggetto Sheet nel tuo codice. Ad esempio, la seguente riga non funzionerà:

 

Shapes(1).Delete

 

È invece necessario specificare il foglio utilizzando un codice simile a una delle seguenti righe:

 

ActiveSheet.Shapes(1).Delete
Sheets("Foglio1").Shapes(1).Delete
Sheets(1).Shapes("Firma").Delete

 

Se determini che l’immagine prevista non è nella collezione Shapes, è possibile che Excel (per strani motivi noti solo ad Excel) abbia spostato l’immagine in una collezione diversa, ad esempio la collezione Pictures. Se sospetti questo, prova a utilizzare la seguente macro:

 

Sub CosaSono()
    Dim sTemp As String

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

 

 

Seleziona l’immagine della firma, quindi esegui la macro. Dovresti vedere una finestra di messaggio che indica il tipo di oggetto selezionato, insieme al suo nome. È quindi possibile utilizzare le informazioni per modificare la macro in modo che elimini l’immagine, come desideri.

 

 

Tags: , , , , , , , , ,

Ti è stato utile?