Puoi facilmente inserire immagini in fogli di calcolo Excel e modificarle con codice macro. Ecco come inserire un'immagine in una cella utilizzando VBA in Excel .

Visual Basic for Applications, abbreviato in VBA, è una forma di Visual Basic 6 integrata nei programmi di Microsoft Office. Attraverso la codifica, VBA consente di automatizzare le attività nelle applicazioni di Office, incluso Excel. In alcuni casi, puoi persino aggiungere nuove funzionalità a Excel utilizzando VBA.
Anche se è necessario lavorare con il codice per utilizzare VBA, ciò non significa che VBA sia pieno di lettere e numeri. Con VBA in Excel puoi creare una macro che ti consente di inserire un'immagine in una cella o in un intervallo di celle. Ecco cosa devi sapere sull'inserimento di immagini nelle celle in Excel utilizzando VBA.
Come inserire immagini nelle celle utilizzando VBA in Excel
Per creare una macro che inserisce un'immagine in una cella di Excel utilizzando VBA, non è necessaria alcuna conoscenza avanzata di Visual Basic. Tutto quello che devi fare è attivare gli strumenti per sviluppatori, creare una macro e incollare il codice appropriato. Naturalmente puoi anche inserire immagini in Excel senza utilizzare VBA. Tuttavia, in questo articolo ci concentreremo su VBA.
1. Attiva gli strumenti per sviluppatori
Per utilizzare VBA in Excel, è necessario abilitare gli strumenti per sviluppatori. Questa azione abiliterà la scheda Sviluppatore nella barra multifunzione, che è disabilitata per impostazione predefinita.
- Apri Excel .
- Vai al menu File .
- Fai clic su Opzioni nella parte inferiore dello schermo. Verrà visualizzata la finestra Opzioni di Excel .
- In Opzioni di Excel, vai alla scheda Personalizza barra multifunzione .
- Nelle schede principali , seleziona Sviluppatore .

Ora gli strumenti per sviluppatori, incluso l'accesso VBA, sono abilitati. Non è necessario farlo ogni volta che desideri utilizzare VBA in Excel. Gli strumenti per sviluppatori saranno sempre abilitati finché non li disabiliti.
2. Crea macro e inserisci il codice
- In Excel, vai alla scheda Sviluppatore .
- Nella sezione Codice, seleziona Macro .
- Nella nuova finestra, inserisci il nome della tua macro in Nome macro . L'articolo utilizzerà insertPhotoMacro .
- Fare clic su Crea .

Dopo aver fatto clic su Crea, la finestra VBA si aprirà e visualizzerà il codice per la tua macro. Attualmente il codice sarà composto da 2 righe: una Sub per avviare la macro e una End Sub per terminarla.

Aggiungi un piccolo codice a questa macro. Aggiungi la seguente riga di codice tra le due righe:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
Il codice finale sarà simile a questo:

Non devi preoccuparti di salvare questo processo. Tutte le modifiche apportate in VBA vengono salvate immediatamente.
Ora è il momento di vedere il codice in azione:
- Chiudi la finestra VBA.
- Vai alla scheda Sviluppatore in Excel.
- Seleziona Macro dalla sezione Codice.
- Evidenzia la macro che hai appena creato.
- Fare clic su Esegui .
Ora si aprirà un messaggio che ti chiederà di individuare il file immagine che desideri inserire. Seleziona la foto, quindi fai clic su Apri. Ora vedrai l'immagine nella cella A1.
Nota, Excel ridurrà l'immagine in modo che si adatti alla cella A1. Puoi cambiarlo e modificare il codice per inserire immagini in altre celle, anche in un intervallo di celle. Nella sezione successiva, separeremo il codice e spiegheremo i parametri.
3. Codice diviso
Affinché il codice VBA funzioni nel modo desiderato, è necessario comprenderlo. Facendo ciò, puoi modificare il codice per inserire immagini in qualsiasi cella di qualsiasi dimensione.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
All'inizio del codice, l'istruzione Dim viene utilizzata per determinare il tipo di variabile. Abbiamo due tipi di variabili: photoNameAndPath e photo . Prima la variabile e poi l'immagine.
Da lì, viene eseguita la variabile photoNameAndPath e verrà aperta un'applicazione per ottenere la posizione del file foto. Questa operazione viene eseguita tramite Application.GetOpenFileName . Il parametro Titolo è facoltativo. Il contenuto al suo interno viene visualizzato come nome della finestra.
Utilizzando If photoNameAndPath = False Then Exit Sub , se viene fornito un indirizzo non valido o vuoto, il processo terminerà. Tuttavia, se viene fornito un file adatto, Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) indica che l'immagine deve essere impostata come variabile come definito originariamente. Verrà inserito nel foglio di lavoro attivo.
Infine, utilizza Con foto e le 5 righe successive per determinare la posizione della foto. .Left e .Top si riferiscono alla posizione iniziale, mentre .Width e .Height si riferiscono alla posizione finale. Se intendi inserire immagini in un'altra cella o in un intervallo, queste sono le righe che dovresti modificare.
.Posizionamento indica che l'immagine deve essere ridimensionata per adattarsi alla cella o inserita a mano libera. Impostandolo su 1 lo ridimensionerà in base alla cella.
Infine, il codice precedente utilizza End With , quindi End Sub per chiudere la macro. Ora puoi modificare le variabili photoNameAndPath e photo con qualsiasi altro nome tu voglia. Ricorda solo di mantenere i nomi coerenti in tutto il codice.
Sopra è come utilizzare VBA per inserire immagini nelle celle in Excel . Spero che l'articolo ti sia utile.