Kuvien lisääminen Excel VBA: n avulla

Sisällysluettelo:

Anonim

Hei siellä! Yritetään roikkua kojelaudalla mielekkäillä kuvilla. Tai vain yrittää lisätä kuvan soluun Excel VBA. Et voi lisätä kuvia Excel -soluihin, mutta voit muuttaa sen kokoa sopimaan Excel -soluun. Manuaalinen tekeminen vie paljon aikaa ja on ärsyttävää. Joten mikä on ratkaisu? Arvasit oikein, VBA -makro. Koodaamme nyt.

Alla on Excel vba -koodi, jolla voit lisätä kuvan kansiosta soluun tai tietylle alueelle. Paina Alt+F11, aseta moduuli ja kopioi tämä koodi.

Älä huoli, olen selittänyt sen alla, jotta voit muokata sitä tarpeidesi mukaan.

Lisää kuva Excel -soluun, jossa on VBA, soluun tai tiettyyn alueeseen

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

End Sub
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range)

'lisää kuvan ja muuttaa sen kokoa sopimaan TargetCells -alueeseen

Dim p Kohteena, t Kuten kaksinkertainen, l Kuten kaksinkertainen, w Kuten kaksinkertainen, h Kuten kaksinkertainen

Jos TypeName (ActiveSheet) "laskentataulukko", sulje sitten Sub

Jos Dir (PictureFileName) = "" Lopeta sitten Sub

'Tuo kuva

Aseta p = ActiveSheet.Pictures.Insert (PictureFileName)

'määrittää sijainnit

TargetCells

t =. ylhäältä

l =. vasen

w = .Siirto (0, .Columns.Count) .Left - .Left

h = .Siirto (.Rivit.luku, 0) .Ylä -

Lopeta

'asentokuva

S

Ylös = t

Vasen = l

Leveys = w

Korkeus = h

Lopeta

Aseta p = ei mitään

End Sub

Selitys:

Osa 1:

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

End Sub

Yllä oleva aliohjelma kutsuu vain tärkeintä aliohjelmaamme InsertPictureInRange, joka sisältää vain kaksi argumenttia. Ensin kuvatiedoston osoite ja sen nimi ja toinen alue, johon haluat lisätä kuvan Excelissä.

Osa 2:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) '' lisää kuvan ja muuttaa sen kokoa sopivaksi TargetCells -alueeseen Dim p As Object, t Kuten Double, l As Double, w As Double, h Kuten Double

Jos TypeName (ActiveSheet) "laskentataulukko", sulje sitten Sub

Jos Dir (PictureFileName) = "" Lopeta sitten Sub

'Tuo kuva

Aseta p = ActiveSheet.Pictures.Insert (PictureFileName)

'määrittää sijainnit

TargetCells -sovelluksella

t =. ylhäältä

l =. vasen

w = .Siirto (0, .Columns.Count) .Left - .Left

h = .Siirto (.Rivit.luku, 0) .Ylä -

Lopeta

'asentokuva

S

Ylös = t

Vasen = l

Leveys = w

Korkeus = h

Lopeta

Aseta p = ei mitään

End Sub

Tämä on tärkein aliohjelma, joka lisää kuvan ja muuttaa sen kokoa sopivaksi. Kaivetaan siihen.

Dim p Kohteena, t Kuten kaksinkertainen, l Kuten kaksinkertainen, w Kuten kaksinkertainen, h Kuten kaksinkertainen

Tämä rivi on vain muuttuva ilmoitus, jota tarvitsemme. Huomautus p Objektimuuttujana. Tämä muuttuja säilyttää kuvan.

Jos TypeName (ActiveSheet) "laskentataulukko", sulje sitten Sub

Se tarkistaa, onko Activesheet -laskentataulukko vai ei. Jos ei, se poistuu koodista välittömästi eikä mitään tapahdu.

Jos Dir (PictureFileName) = "" Lopeta sitten Sub

Tarkista, että olet antanut kuvan osoitteen valokuvan lisäämiseksi Excel -soluun. Jos et ole antanut sitä, se poistuu välittömästi eikä mitään tapahdu.

Aseta p = ActiveSheet.Pictures.Insert (PictureFileName)

Tämä on nyt tärkein linja. Tällä rivillä käytämme Activesheetin Lisää -toimintoa. Kuvat objekti ja laita se objektiin p, jonka ilmoitimme aiemmin. Nyt p: n avulla voimme helposti säätää kuvan leveyttä ja pituutta.

Kun TargetCells t = .Alkuun l = .Vasen w = .Siirto (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0). 

Tämä segmentti saa vain pituuden, leveyden, ylhäältä ja vasemmalta annetulta alueelta.

Kun p. Ylä = t. Vasen = l. Leveys = w Korkeus = h Lopeta

Tämä osa säätää kuvan tietylle alueelle. Ja se on tehty. Lopuksi vapautimme sen asettamalla sen tyhjäksi.

Aseta p = ei mitään

Tämä rivi vapauttaa muistin.

Tämä koodi toimii Excel 2016: ssa, Excel 2013: ssa, Excel 2010: ssä ja Excel 2007: ssä.

Halusin lisätä kuvan alueelle A1: C10. Tätä varten muutin alla olevaa koodiani

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Käyttäjät \ Manish Singh \ Lataukset \ biker.jpg", _Range ("A1: C10")

End Sub

Ja tämän sain. Juuri mitä halusin.


Joten kyllä. Käytä tätä koodia lisätäksesi kuvan Excel -soluun tai -alueeseen. Pelaa koodin ympärillä. Yritä lisätä eri formaatteja, outoja alueita ja katso mitä tapahtuu. Jos sinulla on kysyttävää tai sinulla on haasteita, käytä alla olevia kommentteja.
Lataa tiedosto

Lisää kuvia VBA: n avulla Microsoft Excel 2016: ssa

Suosittuja artikkeleita:

50 Excel -pikanäppäintä tuottavuuden lisäämiseksi

VLOOKUP -toiminnon käyttäminen Excelissä

COUNTIF -toiminnon käyttäminen Excelissä

SUMIF -toiminnon käyttäminen Excelissä