Du kan enkelt infoga bilder i Excel-kalkylblad och redigera dem med makrokod. Så här infogar du en bild i en cell med VBA i Excel .
Visual Basic for Applications, förkortat VBA, ä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 full av bokstäver och siffror. Med VBA i Excel kan du skapa ett makro som låter dig infoga en bild i en cell eller ett cellområde. Här är vad du behöver veta om att infoga bilder i celler i Excel med VBA.
Hur man infogar bilder i celler med VBA i Excel
För att skapa ett makro som infogar en bild i en Excel-cell med VBA behöver du verkligen ingen avancerad Visual Basic-kunskap. Allt du behöver göra är att aktivera utvecklarverktyg, skapa ett makro och klistra in lämplig kod. Naturligtvis kan du även infoga bilder i Excel utan att använda VBA. Men i den här artikeln kommer vi att fokusera på VBA.
1. Aktivera utvecklarverktyg
För att använda VBA i Excel måste du aktivera utvecklarverktyg. Den här åtgärden aktiverar fliken Utvecklare i menyfliksområdet, som är inaktiverad som standard.
- Öppna Excel .
- Gå till Arkiv- menyn .
- Klicka på Alternativ längst ned på skärmen. Fönstret för Excel-alternativ visas.
- I Excel-alternativ går du till fliken Anpassa menyfliksområdet .
- Markera Utvecklare på huvudflikar .
Nu är utvecklarverktyg, inklusive VBA-åtkomst, aktiverade. Du behöver inte göra detta varje gång du vill använda VBA i Excel. Utvecklarverktyg kommer alltid att vara aktiverade tills du inaktiverar dem.
2. Skapa makron och infoga kod
- I Excel går du till fliken Utvecklare .
- I avsnittet Kod väljer du Makron .
- I det nya fönstret anger du ditt makronamn i Makronamn . Artikeln kommer att använda insertPhotoMacro .
- Klicka på Skapa .
Efter att ha klickat på Skapa öppnas VBA-fönstret och visar koden för ditt makro. För närvarande kommer koden att bestå av 2 rader: en Sub för att starta makrot och en End Sub för att avsluta det.
Lägg till lite kod till detta makro. Lägg till följande kodrad mellan de två raderna:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
Den slutliga koden kommer att se ut så här:
Du behöver inte oroa dig för att spara den här processen. Alla ändringar du gör i VBA sparas omedelbart.
Nu är det dags att se koden i aktion:
- Stäng VBA-fönstret.
- Gå till fliken Utvecklare i Excel.
- Välj makron i avsnittet Kod.
- Markera makrot du just skapade.
- Klicka på Kör .
Nu öppnas ett meddelande som ber dig hitta bildfilen du vill infoga. Välj fotot och klicka sedan på Öppna. Du kommer nu att se bilden i cell A1.
Observera att Excel kommer att krympa bilden så att den passar i cell A1. Du kan ändra det och ändra koden för att infoga bilder i andra celler, till och med ett antal celler. I nästa avsnitt kommer vi att separera koden och förklara parametrarna.
3. Dela kod
För att VBA-koden ska fungera som du vill måste du förstå den. När du gör detta kan du ändra koden för att infoga bilder i valfri cell i valfri storlek.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
När koden börjar används Dim-satsen för att bestämma variabeltypen. Vi har två variabeltyper: photoNameAndPath och photo . Först variabeln och sedan bilden.
Därifrån körs variabeln photoNameAndPath och den öppnar ett program för att få platsen för fotofilen. Detta görs via Application.GetOpenFileName . Parametern Titel är valfri. Innehållet inuti det visas som fönsternamnet.
Använd If photoNameAndPath = False Then Exit Sub , om en ogiltig eller tom adress ges, kommer processen att avslutas. Men om en lämplig fil tillhandahålls, anger Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) att bilden ska ställas in som en variabel som ursprungligen definierades. Det kommer att infogas i det aktiva kalkylbladet.
Använd slutligen Med foto och de 5 linjerna efter det för att bestämma platsen för fotot. .Vänster och .Topp hänvisar till startpositionen, medan .Bredd och .Höjd hänvisar till slutpositionen. Om du har för avsikt att infoga bilder i en annan cell eller ett område, är det dessa linjer du bör ändra.
.Placering indikerar att bilden ska ändras i storlek så att den passar cellen eller infogat friform. Om du ställer in den till 1 ändras storleken på den enligt cellen.
Slutligen använder ovanstående kod End With , sedan End Sub för att stänga makrot. Nu kan du ändra variablerna photoNameAndPath och photo till vilket annat namn du vill. Kom bara ihåg att hålla namnen konsekventa genom hela koden.
Ovan är hur du använder VBA för att infoga bilder i celler i Excel . Hoppas artikeln är användbar för dig.