Visual Basic for Application, VBA for kort, er en form for Visual Basic 6 integreret i Microsoft Office-programmer. Gennem kodning giver VBA dig mulighed for at automatisere opgaver i Office-programmer, herunder Excel. I nogle tilfælde kan du endda tilføje nye funktioner til Excel ved hjælp af VBA.

Selvom du skal arbejde med kode for at bruge VBA, betyder det ikke, at VBA udelukkende består af bogstaver og tal. Med VBA i Excel kan du oprette en makro, der giver dig mulighed for at indsætte billeder i en celle eller en række celler. Læs videre for at finde ud af alt om det!

Sådan indsætter du et billede i en celle ved hjælp af VBA i Excel

For at oprette en makro til at indsætte billeder i Excel-celler ved hjælp af VBA, behøver du faktisk ikke nogen avanceret Visual Basic-viden. Alt du skal gøre er at aktivere udviklerværktøjer, oprette makroen og indsætte den rigtige kode.

Men hvis du er interesseret i at lære VBA og skrive din egen kode en dag, har vi opdelt VBA-koden i det tredje afsnit. Det kan du selvfølgelig også

indsætte billeder i Excel uden at bruge VBA. Men denne artikel handler om at få det gjort gennem VBA. Lad os komme i gang!

For at bruge VBA i Excel skal du aktivere udviklerværktøjer i Excel. Dette vil aktivere fanen Udvikler på båndet, som er deaktiveret som standard.

  1. Åbn Excel.
  2. Gå til Fil menu.
  3. Klik på Muligheder nederst på skærmen. Dette åbner vinduet Excel-indstillinger.
  4. I Excel-indstillinger skal du gå til Tilpas bånd fanen.
  5. Under Hovedfaner, kontrollere Udvikler.

Nu er udviklerværktøjer, inklusive adgang til VBA, aktiveret for dig. Du behøver ikke at gøre dette, hver gang du vil bruge VBA i Excel. Udviklerværktøjer forbliver aktiveret, indtil du deaktiverer dem.

2. Oprettelse af makroen og indsættelse af koden

Nu er det tid til at komme i gang med at lave makroen. Alternativt kan du også oprette en knap ved hjælp af VBA til denne opgave, men vi vil holde os til makroer.

  1. I Excel skal du gå til Udvikler fanen.
  2. I den Kode sektion, vælg Makroer.
  3. I det nye vindue skal du indtaste et navn til din makro under Makro navn. Vi skal bruge indsæt FotoMakro.
  4. Klik skab.

Når du klikker på Opret, åbnes VBA-vinduet og viser koden til din makro. Lige nu vil koden bestå af to linjer: A Sub for at starte makroen, og en Slut Sub at afslutte det.

Lad os tilføje noget kode til denne makro. Tilføj følgende kode mellem de to linjer:

Dim fotoNameAndPath Som Variant
Dim foto Som Billede
photoNameAndPath = Application. GetOpenFilename (Title:="Vælg Foto tilIndsæt")
Hvis photoNameAndPath = Falsk Derefter Afslut Sub
Sæt foto = ActiveSheet. Billeder. Indsæt (photoNameAndPath)
Med Foto
.Left = ActiveSheet. Rækkevidde("A1").Venstre
.Top = ActiveSheet. Rækkevidde("A1").Top
.Width = ActiveSheet. Rækkevidde("A1").Bredde
.Højde = ActiveSheet. Rækkevidde("A1").Højde
.Placering = 1
EndeMed

Din endelige kode skal være noget som nedenstående:

Du behøver ikke bekymre dig om at gemme dine fremskridt. Hver ændring, du foretager i VBA, gemmes øjeblikkeligt.

Nu er det tid til at se koden i arbejde.

  1. Luk VBA-vinduet.
  2. Gå til Udvikler fanen i Excel.
  3. Vælg Makroer fra Kode afsnit.
  4. Fremhæv den makro, du lige har oprettet.
  5. Klik Løb.

Nu åbnes en prompt, der beder dig om at finde den billedfil, du vil indsætte. Vælg dit billede, og klik derefter Åben. Du skulle nu se dit billede i A1-cellen!

Bemærk, at det indsatte billede er krympet, så det passer til celle A1. Du kan ændre dette og også ændre koden for at indsætte billedet i andre celler eller endda en række celler. I næste afsnit skal vi nedbryde koden og forklare parametrene, der fungerer.

3. Nedbrydning af koden

For at få denne VBA-kode til at fungere for dig, som du ønsker, skal du forstå den. Når du har gjort det, kan du ændre koden for at indsætte billeder i enhver celle i enhver størrelse. Vi vil gennemgå koden lidt efter lidt for at gøre den lettere at forstå.

Sub insertPhotoMacro()
Dim fotoNameAndPath Som Variant
Dim foto Som Billede
photoNameAndPath = Application. GetOpenFilename (Title:="Vælg Foto tilIndsæt")
Hvis photoNameAndPath = Falsk Derefter Afslut Sub
Sæt foto = ActiveSheet. Billeder. Indsæt (photoNameAndPath)
Med Foto
.Left = ActiveSheet. Rækkevidde("A1").Venstre
.Top = ActiveSheet. Rækkevidde("A1").Top
.Width = ActiveSheet. Rækkevidde("A1").Bredde
.Højde = ActiveSheet. Rækkevidde("A1").Højde
.Placering = 1
EndeMed
Ende Sub

Når koden starter, bruger vi Svag sætning for at bestemme variablens type. Vi har to variabler her: photoNameAndPath og Foto sig selv. Vi har bestemt førstnævnte som en Variant og sidstnævnte som en Foto.

Derfra kører variablen photoNameAndPath, og den åbner et program for at finde billedfilens opholdssted. Dette gøres igennem Ansøgning. GetOpenFileName. Det Titel parameteren er valgfri, og indholdet i den vises som vinduesnavnet.

Ved brug af Hvis photoNameAndPath = False Afslut Sub, angiver vi, at hvis en ugyldig eller tom adresse er angivet, skal processen afsluttes. Men hvis en ordentlig fil fødes, så Indstil foto = ActiveSheet. Billeder. Indsæt (photoNameAndPath) angiver, at billedet skal indstilles som den fotovariabel, vi definerede tidligere, og det skal indsættes i det aktive regneark.

Bruger endelig Med foto og de fem linjer efter det, uddyber vi billedets placering. .Venstre og .Top angive startsteder, mens .Bredde og .Højde angive slutplaceringerne. Hvis du ønsker at indsætte billedet i andre celler eller i et område, så er det disse linjer, du skal ændre.

.Placering angiver, om billedet skal dimensioneres med cellerne eller indsættes i fri form. Indstiller den til 1 vil dimensionere den med cellerne.

I sidste ende bruger vi Slut med og så Slut Sub for at lukke makroen. Bemærk, at du kan ændre photoNameAndPath og Foto variabler til et hvilket som helst andet navn, du kan lide. Bare husk at holde navnene konsekvente gennem hele koden.

Få mere gjort i Excel med VBA

Excel er virkelig et vidunderligt værktøj til at organisere og analysere data, men det betyder ikke, at Excel er uduelig, når det kommer til grafik. Selvom fotos og bitmaps ikke er Excels stærkeste side, er Excel stadig perfekt i stand til at håndtere dem.

Selvom du kan indsætte billeder i Excel ved hjælp af grænsefladen, som du ville gøre i andre Office-apps, kan du også gøre det ved hjælp af VBA. Med VBA kan du automatisere denne opgave og endda koble den med andre opgaver for at køre samtidigt. Mulighederne med VBA i Excel er uendelige.