Come inserire immagini utilizzando Excel VBA

Sommario:

Anonim

Ciao! Cercando di scuotere il cruscotto con immagini significative. O semplicemente cercando di inserire un'immagine nella cella Excel VBA. Bene, non puoi inserire immagini in celle excel ma puoi ridimensionarle per adattarle alla cella excel. Farlo manualmente richiederà molto tempo ed è fastidioso. Allora qual è la soluzione? Hai indovinato, una macro VBA. Codificheremo ora.

Di seguito è riportato il codice vba excel per inserire l'immagine da una cartella in una cella o in un determinato intervallo. Premi Alt+F11, inserisci un modulo e copia questo codice.

Non preoccuparti, l'ho spiegato di seguito in modo che tu possa modificarlo in base alle tue esigenze.

Inserisci immagine nella cella di Excel con VBA in una cella o in un determinato intervallo

Sub TestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")

Fine sottotitolo
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)

' inserisce un'immagine e la ridimensiona per adattarla alla gamma TargetCells

Dim p come oggetto, t come doppio, l come doppio, w come doppio, h come doppio

Se TypeName (ActiveSheet) "Foglio di lavoro" quindi esci da Sub

If Dir(PictureFileName) = "" Then Exit Sub

'importa immagine

Imposta p = ActiveSheet.Pictures.Insert(PictureFileName)

'determinare le posizioni

Con TargetCells

t = .In alto

l = .sinistra

w = .Offset(0, .Colonne.Conteggio).Sinistra - .Sinistra

h = .Offset(.Righe.Conteggio, 0).In alto - .In alto

Termina con

'immagine di posizione

Con p

.In alto = t

.Sinistra = l

.Larghezza = w

.Altezza = h

Termina con

Imposta p = Niente

Fine sottotitolo

Spiegazione:

Parte 1:

Sub TestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")

Fine sottotitolo

La subroutine precedente chiama semplicemente la nostra subroutine principale InsertPictureInRange che accetta solo due argomenti. Innanzitutto l'indirizzo del file immagine con il suo nome e il secondo Intervallo in cui si desidera inserire l'immagine in Excel.

Parte 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)' inserisce un'immagine e la ridimensiona per adattarla all'intervallo TargetCellsDim p As Object, t As Double, l As Double, w As Double, h As Double

Se TypeName (ActiveSheet) "Foglio di lavoro" quindi esci da Sub

If Dir(PictureFileName) = "" Then Exit Sub

'importa immagine

Imposta p = ActiveSheet.Pictures.Insert(PictureFileName)

'determinare le posizioni

Con TargetCells

t = .In alto

l = .sinistra

w = .Offset(0, .Colonne.Conteggio).Sinistra - .Sinistra

h = .Offset(.Righe.Conteggio, 0).In alto - .In alto

Termina con

'immagine di posizione

Con p

.In alto = t

.Sinistra = l

.Larghezza = w

.Altezza = h

Termina con

Imposta p = Niente

Fine sottotitolo

Questa è la subroutine principale che inserisce e ridimensiona l'immagine per adattarla all'intervallo specificato. Approfondiamo.

Dim p come oggetto, t come doppio, l come doppio, w come doppio, h come doppio

Questa riga è solo una dichiarazione di variabile di cui avremo bisogno. Nota p Come variabile oggetto. Questa variabile manterrà la nostra immagine.

Se TypeName (ActiveSheet) "Foglio di lavoro" quindi esci da Sub

Controlla se Activesheet è un foglio di lavoro o meno. In caso contrario, uscirà immediatamente dal codice e non accadrà nulla.

If Dir(PictureFileName) = "" Then Exit Sub

Verifica di aver fornito un indirizzo per l'immagine per inserire una foto nella cella excel. Se non lo hai fornito, uscirà immediatamente e non succederà nulla.

Imposta p = ActiveSheet.Pictures.Insert(PictureFileName)

Ora, questa è la linea più importante. In questa riga, stiamo usando la funzione Inserisci di Activesheet. Pictures e inserirlo nell'oggetto p che abbiamo dichiarato in precedenza. Ora usando p possiamo facilmente regolare la larghezza e la lunghezza dell'immagine.

Con TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top End With 

Questo segmento ottiene solo Lunghezza, Larghezza, Superiore e Sinistra dall'intervallo specificato.

Con p .In alto = t .Sinistra = l .Larghezza = w Altezza = h Fine con

Questa parte regola l'immagine nell'intervallo specificato. Ed è fatto. Infine, lo liberiamo impostandolo su niente.

Imposta p = Niente

Questa linea libera la memoria.

Questo codice funzionerà in Excel 2016, Excel 2013, Excel 2010 ed Excel 2007.

Qui volevo inserire l'immagine nell'intervallo A1: C10. Per fare ciò, ho modificato il mio codice qui sotto

Sub TestInsertPictureInRange()InsertPictureInRange "C:\Utenti\Manish Singh\Downloads\biker.jpg", _Gamma("A1:C10")

Fine sottotitolo

E questo è quello che ho ottenuto. Esattamente quello che volevo.


Quindi, sì. Usa questo codice per inserire un'immagine nella cella o nell'intervallo di Excel. Gioca con il codice. Prova a inserire formati diversi, intervalli strani e guarda cosa succede. Se hai domande o stai affrontando una sfida, usa la sezione commenti qui sotto per chiedermelo.
Download file

Inserisci immagini utilizzando VBA in Microsoft Excel 2016

Articoli popolari:

50 scorciatoie di Excel per aumentare la produttività

Come utilizzare la funzione CERCA.VERT in Excel

Come utilizzare la funzione CONTA.SE in Excel

Come utilizzare la funzione SOMMA.SE in Excel