Come inserire immagini utilizzando Excel VBA
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 nelle 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. Ora codificheremo.
Di seguito è riportato il codice excel vba per inserire un’immagine da una cartella in una cella o in un determinato intervallo. Premi Alt + F11, inserisci un modulo e copia questo codice.
Non ti preoccupare, l’ho spiegato di seguito in modo da poterlo modificare in base alle tue esigenze.
Inserisci immagine nella cella di Excel con VBA in una cella o in un intervallo specificato [larghezza = “100%”, cols = “100%”,]
Sub TestInsertPictureInRange()InsertPictureInRange “C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”) End Sub Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range) ‘ inserts a picture and resizes it to fit the TargetCells range Dim p As Object, t As Double, l As Double, w As Double, h As Double If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub If Dir(PictureFileName) = “” Then Exit Sub ‘ import picture Set p = ActiveSheet.Pictures.Insert(PictureFileName) ‘ determine positions With TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left – .Left h = .Offset(.Rows.Count, 0).Top – .Top End With ‘ position picture With p Height = h
End With Set p = Nothing End Sub |
Spiegazione:
Parte 1:
Sub TestInsertPictureInRange()InsertPictureInRange “C:\FolderName\PictureFileName.gif”, _Range(“B5:D10”) End Sub |
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)’ inserts a picture and resizes it to fit the TargetCells rangeDim p As Object, t As Double, l As Double, w As Double, h As Double If TypeName(ActiveSheet) <> “Worksheet” Then Exit Sub If Dir(PictureFileName) = “” Then Exit Sub ‘ import picture Set p = ActiveSheet.Pictures.Insert(PictureFileName) ‘ determine positions With TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left – .Left h = .Offset(.Rows.Count, 0).Top – .Top End With ‘ position picture With p Height = h
End With Set p = Nothing End Sub |
Questa è la subroutine principale che inserisce e ridimensiona l’immagine per adattarla all’intervallo dato. Analizziamolo.
Dim p As Object, t As Double, l As Double, w As Double, h As Double
Questa riga è solo una dichiarazione di variabile di cui avremo bisogno. Nota p Come variabile oggetto. Questa variabile manterrà la nostra immagine.
If TypeName(ActiveSheet) <> "Worksheet" Then Exit 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 di Excel. Se non l’hai fornito, uscirà immediatamente e non succederà nulla.
Set p = ActiveSheet.Pictures.Insert(PictureFileName)
Questa è la linea più importante. In questa riga, stiamo usando la funzione Inserisci di Activesheet. Pictures oggetto e inseriscilo nell’oggetto p che abbiamo dichiarato in precedenza. Ora usando p possiamo facilmente regolare la larghezza e la lunghezza dell’immagine.
With 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, Alto e Sinistra dall’intervallo dato.
With p .Top = t .Left = l .Width = w Height = h End With
Questa parte adatta l’immagine all’intervallo dato. Ed è fatto. Infine, lo liberiamo impostandolo su nulla.
Set p = Nothing
Questa linea libera la memoria.
Questo codice funzionerà in Excel 2016, Excel 2013, Excel 2010 ed Excel 2007.
Qui volevo inserire l’immagine nel range A1: C10. Per fare questo, ho modificato il mio codice sotto [width = “100%”, cols = “100%”,]
Sub TestInsertPictureInRange()InsertPictureInRange “*C:\Users\Manish Singh\Downloads\biker.jpg”, _Range(“A1:C10*”) End Sub |
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 intorno al codice. Prova a inserire formati diversi, intervalli strani e guarda cosa succede. Se hai domande o stai affrontando qualsiasi sfida, usa la sezione commenti qui sotto per chiedermelo.
Scarica il file
`link: /wp-content-uploads-2013-07-Insert-Pictures-Using-VBA-In-Microsoft-Excel-2016.xls [__ Inserisci immagini usando VBA in Microsoft Excel 2016]
Articoli popolari:
link: / formule-e-funzioni-introduzione-di-vlookup-funzione [Come usare la funzione CERCA.VERT in Excel]
link: / tips-countif-in-microsoft-excel [Come usare la funzione CONTA.SE in Excel]
link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel]