Visual Basic for Application, VBA for kort, er en form for Visual Basic 6 integrert i Microsoft Office-programmer. Gjennom koding lar VBA deg automatisere oppgaver i Office-programmer, inkludert Excel. I noen tilfeller kan du til og med legge til nye funksjoner i Excel ved hjelp av VBA.
Selv om du må jobbe med kode for å bruke VBA, betyr ikke det at VBA er bokstaver og tall. Med VBA i Excel kan du lage en makro som lar deg sette inn bilder i en celle eller et celleområde. Les videre for å finne ut alt om det!
Hvordan sette inn et bilde i en celle ved hjelp av VBA i Excel
For å lage en makro for å sette inn bilder i Excel-celler ved hjelp av VBA, trenger du faktisk ingen avansert Visual Basic-kunnskap. Alt du trenger å gjøre er å aktivere utviklerverktøy, lage makroen og lime inn riktig kode.
Men hvis du er interessert i å lære VBA og skrive din egen kode en dag, har vi brutt ned VBA-koden i den tredje delen. Selvfølgelig kan du også sette inn bilder i Excel uten å bruke VBA. Men denne artikkelen handler om å få det gjort gjennom VBA. La oss komme i gang!
For å bruke VBA i Excel, må du aktivere utviklerverktøy i Excel. Dette vil aktivere Utvikler-fanen på båndet, som er deaktivert som standard.
- Åpne Excel.
- Gå til Fil Meny.
- Klikk på Alternativer nederst på skjermen. Dette åpner vinduet for Excel-alternativer.
- I Excel-alternativer går du til Tilpass bånd fanen.
- Under Hovedfaner, Sjekk Utvikler.
Nå er utviklerverktøy, inkludert tilgang til VBA, aktivert for deg. Du trenger ikke gjøre dette hver gang du vil bruke VBA i Excel. Utviklerverktøy forblir aktivert til du deaktiverer dem.
2. Opprette makroen og sette inn koden
Nå er det på tide å begynne å lage makroen. Alternativt kan du også lage en knapp ved hjelp av VBA for denne oppgaven, men vi kommer til å holde oss til makroer.
- I Excel, gå til Utvikler fanen.
- I Kode seksjon, velg Makroer.
- I det nye vinduet skriver du inn et navn for makroen din under Makronavn. Vi skal bruke sett innPhotoMacro.
- Klikk Skape.
Når du klikker på Opprett, åpnes VBA-vinduet og viser koden for makroen din. Akkurat nå vil koden bestå av to linjer: A Under for å starte makroen, og en End Sub å avslutte det.
La oss legge til litt kode til denne makroen. Legg til følgende kode mellom de to linjene:
Dim fotoNameAndPath Som Variant
Dim bilde Som Bilde
photoNameAndPath = Application. GetOpenFilename (Tittel:="Plukke ut Foto tilSett inn")
Hvis photoNameAndPath = Falsk Deretter Exit Under
Sett bilde = ActiveSheet. Bilder. Sett inn (photoNameAndPath)
Med bilde
.Left = ActiveSheet. Område("A1").Venstre
.Top = ActiveSheet. Område("A1").Topp
.Width = ActiveSheet. Område("A1").Bredde
.Height = ActiveSheet. Område("A1").Høyde
.Plassering = 1
SluttMed
Den endelige koden din bør være noe sånt som nedenfor:
Du trenger ikke bekymre deg for å lagre fremgangen din. Hver endring du gjør i VBA lagres umiddelbart.
Nå er det på tide å se koden på jobb.
- Lukk VBA-vinduet.
- Gå til Utvikler fanen i Excel.
- Plukke ut Makroer fra Kode seksjon.
- Marker makroen du nettopp opprettet.
- Klikk Løpe.
Nå åpnes en melding som ber deg finne bildefilen du vil sette inn. Velg bildet ditt og klikk deretter Åpen. Du bør nå se bildet ditt i A1-cellen!
Legg merke til at det innsatte bildet er krympet for å passe til celle A1. Du kan endre dette, og også endre koden for å sette inn bildet i andre celler eller til og med en rekke celler. I neste avsnitt skal vi bryte ned koden og forklare parametrene som fungerer.
3. Å bryte ned koden
For å få denne VBA-koden til å fungere for deg slik du vil, må du forstå den. Når du gjør det, kan du endre koden for å sette inn bilder i en hvilken som helst celle i alle størrelser. Vi skal gå gjennom koden bit for bit for å gjøre den lettere å forstå.
Sub insertPhotoMacro()
Dim fotoNameAndPath Som Variant
Dim bilde Som Bilde
photoNameAndPath = Application. GetOpenFilename (Tittel:="Plukke ut Foto tilSett inn")
Hvis photoNameAndPath = Falsk Deretter Exit Under
Sett bilde = ActiveSheet. Bilder. Sett inn (photoNameAndPath)
Med bilde
.Left = ActiveSheet. Område("A1").Venstre
.Top = ActiveSheet. Område("A1").Topp
.Width = ActiveSheet. Område("A1").Bredde
.Height = ActiveSheet. Område("A1").Høyde
.Plassering = 1
SluttMed
Slutt Under
Når koden starter, bruker vi Dim setning for å bestemme variabelens type. Vi har to variabler her: photoNameAndPath og bilde seg selv. Vi har bestemt førstnevnte som en Variant og sistnevnte som en Foto.
Derfra kjører photoNameAndPath-variabelen og den åpner et program for å finne hvor bildefilen befinner seg. Dette gjøres gjennom Applikasjon. GetOpenFileName. De Tittel parameteren er valgfri, og innholdet i den vises som vinduets navn.
Ved hjelp av Hvis photoNameAndPath = False Avslutt Sub, spesifiserer vi at hvis en ugyldig eller tom adresse oppgis, skal prosessen avsluttes. Men hvis en riktig fil mates, da Sett bilde = ActiveSheet. Bilder. Sett inn (photoNameAndPath) indikerer at bildet skal settes som bildevariabelen vi definerte tidligere, og det skal settes inn i det aktive regnearket.
Endelig i bruk Med foto og de fem linjene etter det, utdyper vi bildets plassering. .Venstre og .Topp angi startstedene, mens .Bredde og .Høyde angi endeplasseringer. Hvis du ønsker å sette inn bildet i andre celler, eller i et område, er disse linjene du bør endre.
.Plassering angir om bildet skal dimensjoneres med cellene eller settes inn i fri form. Setter den til 1 vil dimensjonere den med cellene.
Til syvende og sist bruker vi Avslutt med og så End Sub for å lukke makroen. Merk at du kan endre photoNameAndPath og bilde variabler til et annet navn du liker. Bare husk å holde navnene konsekvente gjennom hele koden.
Få mer gjort i Excel med VBA
Excel er virkelig et fantastisk verktøy for å organisere og analysere data, men det betyr ikke at Excel er udugelig når det kommer til grafikk. Selv om bilder og punktgrafikk ikke er Excels sterkeste side, er Excel fortsatt perfekt i stand til å håndtere dem.
Selv om du kan sette inn bilder i Excel ved å bruke grensesnittet som du ville gjort i andre Office-apper, kan du også gjøre det ved å bruke VBA. Med VBA kan du automatisere denne oppgaven og til og med koble den til andre oppgaver for å kjøre samtidig. Mulighetene med VBA i Excel er uendelige.