Visual Basic for Application, VBA för kort, är en form av Visual Basic 6 integrerad i Microsoft Office-program. Genom kodning låter VBA dig automatisera uppgifter i Office-program, inklusive Excel. I vissa fall kan du till och med lägga till nya funktioner i Excel med VBA.

Även om du behöver arbeta med kod för att använda VBA, betyder det inte att VBA är bokstäver och siffror. Med VBA i Excel kan du skapa ett makro som låter dig infoga bilder i en cell eller ett cellområde. Läs vidare för att ta reda på allt om det!

Hur man infogar en bild i en cell med VBA i Excel

För att skapa ett makro för att infoga bilder i Excel-celler med VBA behöver du faktiskt ingen avancerad Visual Basic-kunskap. Allt du behöver göra är att aktivera utvecklarverktyg, skapa makrot och klistra in rätt kod.

Men om du är intresserad av att lära dig VBA och skriva din egen kod någon gång, har vi delat upp VBA-koden i det tredje avsnittet. Naturligtvis kan du också infoga bilder i Excel utan att använda VBA. Men den här artikeln handlar om att få det gjort genom VBA. Låt oss komma till saken!

instagram viewer

För att kunna använda VBA i Excel måste du aktivera utvecklarverktyg i Excel. Detta kommer att aktivera fliken Utvecklare i menyfliksområdet, som är inaktiverat som standard.

  1. Öppna Excel.
  2. Gå till Fil meny.
  3. Klicka på alternativ längst ner på skärmen. Detta öppnar fönstret Excel-alternativ.
  4. I Excel-alternativ, gå till Anpassa band flik.
  5. Under Huvudflikar, kolla upp Utvecklare.

Nu är utvecklarverktyg, inklusive tillgång till VBA, aktiverade för dig. Du behöver inte göra detta varje gång du vill använda VBA i Excel. Utvecklarverktyg förblir aktiverade tills du inaktiverar dem.

2. Skapa makrot och infoga koden

Nu är det dags att börja skapa makrot. Alternativt kan du också skapa en knapp med VBA för den här uppgiften, men vi kommer att hålla oss till makron.

  1. I Excel, gå till Utvecklare flik.
  2. I den Koda avsnitt, välj Makron.
  3. I det nya fönstret anger du ett namn för ditt makro under Makronamn. Vi ska använda infoga PhotoMacro.
  4. Klick Skapa.

När du klickar på Skapa öppnas VBA-fönstret och visar koden för ditt makro. Just nu kommer koden att bestå av två rader: A Sub för att initiera makrot, och en Avsluta Sub att avsluta det.

Låt oss lägga till lite kod till detta makro. Lägg till följande kod mellan de två raderna:

Dimma photoNameAndPath Som Variant
Dim foto Som Bild
photoNameAndPath = Application. GetOpenFilename (Title:="Välj Foto tillFöra in")
Om photoNameAndPath = Falsk Sedan Utgång Sub
Uppsättning foto = ActiveSheet. Bilder. Infoga (photoNameAndPath)
Med Foto
.Left = ActiveSheet. Räckvidd("A1").Vänster
.Top = ActiveSheet. Räckvidd("A1").Topp
.Width = ActiveSheet. Räckvidd("A1").Bredd
.Height = ActiveSheet. Räckvidd("A1").Höjd
.Placering = 1
SlutetMed

Din slutliga kod bör vara något i stil med nedan:

Du behöver inte oroa dig för att spara dina framsteg. Varje förändring du gör i VBA sparas omedelbart.

Nu är det dags att se koden på jobbet.

  1. Stäng VBA-fönstret.
  2. Gå till Utvecklare fliken i Excel.
  3. Välj Makron från Koda sektion.
  4. Markera makrot du just skapade.
  5. Klick Springa.

Nu öppnas en prompt som ber dig hitta bildfilen du vill infoga. Välj din bild och klicka sedan Öppen. Du bör nu se ditt foto i A1-cellen!

Lägg märke till att den infogade bilden är krympt för att passa cell A1. Du kan ändra detta och även ändra koden för att infoga bilden i andra celler eller till och med en rad celler. I nästa avsnitt kommer vi att bryta ner koden och förklara parametrarna på jobbet.

3. Att bryta ner koden

För att få den här VBA-koden att fungera för dig som du vill måste du förstå den. När du har gjort det kan du ändra koden för att infoga foton i valfri cell i valfri storlek. Vi kommer att gå igenom koden bit för bit för att göra den lättare att förstå.

Sub insertPhotoMacro()
Dimma photoNameAndPath Som Variant
Dim foto Som Bild
photoNameAndPath = Application. GetOpenFilename (Title:="Välj Foto tillFöra in")
Om photoNameAndPath = Falsk Sedan Utgång Sub
Uppsättning foto = ActiveSheet. Bilder. Infoga (photoNameAndPath)
Med Foto
.Left = ActiveSheet. Räckvidd("A1").Vänster
.Top = ActiveSheet. Räckvidd("A1").Topp
.Width = ActiveSheet. Räckvidd("A1").Bredd
.Height = ActiveSheet. Räckvidd("A1").Höjd
.Placering = 1
SlutetMed
Slutet Sub

När koden startar använder vi Dämpa uttalande för att bestämma variabelns typ. Vi har två variabler här: photoNameAndPath och Foto sig. Vi har bestämt den förra som en Variant och den senare som en Foto.

Därifrån körs variabeln photoNameAndPath och den öppnar ett program för att ta reda på var bildfilen finns. Detta görs genom Ansökan. GetOpenFileName. De Titel parametern är valfri och innehållet i den visas som fönsternamnet.

Använder sig av Om photoNameAndPath = False Avsluta Subanger vi att om en ogiltig eller tom adress anges ska processen avslutas. Men om en korrekt fil matas, då Ställ in foto = ActiveSheet. Bilder. Infoga (photoNameAndPath) indikerar att bilden ska ställas in som den fotovariabel vi definierade tidigare och att den ska infogas i det aktiva kalkylarket.

Äntligen använder Med foto och de fem linjerna efter den, utvecklar vi bildens placering. .Vänster och .Topp ange startplatserna, medan .Bredd och .Höjd ange slutplatserna. Om du vill infoga bilden i andra celler, eller i ett intervall, är det dessa linjer du bör ändra.

.Placering anger om bilden ska dimensioneras med cellerna eller infogas i fri form. Ställer in den på 1 kommer att dimensionera den med cellerna.

I slutändan använder vi Sluta med och då Avsluta Sub för att stänga makrot. Observera att du kan ändra photoNameAndPath och Foto variabler till vilket annat namn du vill. Kom bara ihåg att hålla namnen konsekventa genom hela koden.

Få mer gjort i Excel med VBA

Excel är verkligen ett underbart verktyg för att organisera och analysera data, men det betyder inte att Excel är odugligt när det kommer till grafik. Även om foton och bitmappar inte är Excels starkaste sida, är Excel fortfarande perfekt kapabel att hantera dem.

Även om du kan infoga bilder i Excel med gränssnittet som du skulle göra i andra Office-appar, kan du också göra det med VBA. Med VBA kan du automatisera den här uppgiften och till och med koppla den med andra uppgifter för att köras samtidigt. Möjligheterna med VBA i Excel är oändliga.