Visual Basic for Application, na kratko VBA, je oblika Visual Basica 6, integriranega v programe Microsoft Office. S kodiranjem VBA omogoča avtomatizacijo opravil v Officeovih programih, vključno z Excelom. V nekaterih primerih lahko Excelu celo dodate nove funkcije z VBA.
Čeprav morate za uporabo VBA delati s kodo, to ne pomeni, da je VBA samo črke in številke. Z VBA v Excelu lahko ustvarite makro, ki vam omogoča vstavljanje slik v celico ali obseg celic. Berite naprej, če želite izvedeti vse o tem!
Kako vstaviti sliko v celico z uporabo VBA v Excelu
Če želite ustvariti makro za vstavljanje slik v Excelove celice z VBA, pravzaprav ne potrebujete naprednega znanja Visual Basica. Vse kar morate storiti je, da omogočite orodja za razvijalce, ustvarite makro in prilepite pravo kodo.
Če pa vas nekega dne zanima učenje VBA in pisanje lastne kode, smo v tretjem razdelku razčlenili kodo VBA. Seveda lahko tudi vstavite slike v Excel brez uporabe VBA. Toda ta članek govori o tem, kako to narediti prek VBA. Pa se lotimo posla!
Če želite uporabljati VBA v Excelu, morate v Excelu omogočiti orodja za razvijalce. To bo omogočilo zavihek Razvijalec na traku, ki je privzeto onemogočen.
- Odprite Excel.
- Pojdi na mapa meni.
- Kliknite na Opcije na dnu zaslona. To bo odprlo okno Excel Options.
- V Excelovih možnostih pojdite na Prilagodite trak zavihek.
- Spodaj Glavni zavihki, preveri Razvijalec.
Zdaj so vam omogočena orodja za razvijalce, vključno z dostopom do VBA. Tega vam ni treba narediti vsakič, ko želite uporabiti VBA v Excelu. Orodja za razvijalce bodo ostala omogočena, dokler jih ne onemogočite.
2. Ustvarjanje makra in vstavljanje kode
Zdaj je čas, da se lotimo ustvarjanja makra. Lahko pa tudi ustvarite gumb z VBA za to nalogo, vendar se bomo držali makrov.
- V Excelu pojdite na Razvijalec zavihek.
- V Koda razdelek izberite Makri.
- V novo okno vnesite ime za svoj makro pod Ime makra. Uporabili bomo vstaviPhotoMacro.
- Kliknite Ustvari.
Ko kliknete Ustvari, se odpre okno VBA in prikaže kodo za vaš makro. Trenutno bo koda sestavljena iz dveh vrstic: A Sub za zagon makra in an End Sub končati.
Temu makru dodamo nekaj kode. Med dve vrstici dodajte naslednjo kodo:
Zatemnite ime fotografije in pot Kot Različica
Zatemnjena fotografija Kot Slika
photoNameAndPath = Aplikacija. GetOpenFilename (Naslov:="Izberite Fotografija doVstavi")
če photoNameAndPath = False Potem Izhod Sub
Set fotografija = ActiveSheet. Slike. Vstavi (ime fotografije in pot)
z fotografija
.Levo = ActiveSheet. Razpon ("A1").Levo
.Top = ActiveSheet. Razpon ("A1").Na vrh
.Width = ActiveSheet. Razpon ("A1").Premer
.Višina = ActiveSheet. Razpon ("A1").Višina
.Umestitev = 1
Konecz
Vaša končna koda bi morala biti podobna spodnji:
Ni vam treba skrbeti za shranjevanje vašega napredka. Vsaka sprememba, ki jo naredite v VBA, se takoj shrani.
Zdaj je čas, da vidite kodo na delu.
- Zaprite okno VBA.
- Pojdi na Razvijalec zavihek v Excelu.
- Izberite Makri Iz Koda razdelek.
- Označite makro, ki ste ga pravkar ustvarili.
- Kliknite Teči.
Zdaj se odpre poziv, ki vas prosi, da poiščete slikovno datoteko, ki jo želite vstaviti. Izberite svojo sliko in kliknite Odprto. Zdaj bi morali videti svojo fotografijo v celici A1!
Upoštevajte, da je vstavljena slika skrčena, da ustreza celici A1. To lahko spremenite in tudi spremenite kodo, da vstavite sliko v druge celice ali celo obseg celic. V naslednjem razdelku bomo razčlenili kodo in razložili parametre pri delu.
3. Razbijanje kode
Da bo ta koda VBA delovala tako, kot želite, jo morate razumeti. Ko to storite, lahko spremenite kodo za vstavljanje fotografij v katero koli celico poljubne velikosti. Skozi kodo bomo šli postopoma, da jo bomo lažje razumeli.
Sub insertPhotoMacro()
Zatemnite ime fotografije in pot Kot Različica
Zatemnjena fotografija Kot Slika
photoNameAndPath = Aplikacija. GetOpenFilename (Naslov:="Izberite Fotografija doVstavi")
če photoNameAndPath = False Potem Izhod Sub
Set fotografija = ActiveSheet. Slike. Vstavi (ime fotografije in pot)
z fotografija
.Levo = ActiveSheet. Razpon ("A1").Levo
.Top = ActiveSheet. Razpon ("A1").Na vrh
.Width = ActiveSheet. Razpon ("A1").Premer
.Višina = ActiveSheet. Razpon ("A1").Višina
.Umestitev = 1
Konecz
Konec Sub
Ko se koda začne, uporabimo Dim stavek za določitev tipa spremenljivke. Tukaj imamo dve spremenljivki: photoNameAndPath in fotografija sama. Prvega smo določili kot Različica in slednji kot a Fotografija.
Od tam se zažene spremenljivka photoNameAndPath in odpre aplikacijo za pridobitev podatkov o lokaciji slikovne datoteke. To se naredi prek Aplikacija. GetOpenFileName. The Naslov parameter je neobvezen in vsebina v njem je prikazana kot ime okna.
Uporaba If photoNameAndPath = False Then Exit Sub, določamo, da je treba postopek prekiniti, če je naveden neveljaven ali prazen naslov. Vendar, če je podana ustrezna datoteka, potem Nastavi fotografijo = ActiveSheet. Slike. Vstavi (ime fotografije in pot) označuje, da je treba sliko nastaviti kot spremenljivko fotografije, ki smo jo definirali prej, in jo vstaviti v aktivno preglednico.
Končno z uporabo S fotografijo in pet vrstic, ki mu sledijo, podrobneje razložimo položaj slike. .Levo in .Top navedite začetne lokacije, medtem ko .Premer in .Višina navedite končne lokacije. Če želite sliko vstaviti v druge celice ali v obseg, potem so to vrstice, ki jih morate spremeniti.
.Umestitev označuje, ali naj bo slika prilagojena velikosti celic ali vstavljena v prosti obliki. Nastavitev na 1 ga bo določil s celicami.
Navsezadnje uporabljamo Končaj z in potem End Sub da zaprete makro. Upoštevajte, da lahko spremenite photoNameAndPath in fotografija spremenljivke na poljubno drugo ime. Samo ne pozabite ohraniti doslednosti imen v celotni kodi.
Opravite več v Excelu z VBA
Excel je res čudovito orodje za organiziranje in analiziranje podatkov, vendar to ne pomeni, da je Excel nespreten, ko gre za grafiko. Čeprav fotografije in bitne slike niso Excelova najmočnejša stran, je Excel še vedno popolnoma sposoben ravnati z njimi.
Čeprav lahko v Excel vstavljate slike z vmesnikom, kot bi v drugih Officeovih aplikacijah, lahko to storite tudi z VBA. Z VBA lahko avtomatizirate to nalogo in jo celo povežete z drugimi nalogami, ki se izvajajo hkrati. Možnosti VBA v Excelu so neskončne.