Visual Basic for Application ehk lühidalt VBA on Microsoft Office'i programmidesse integreeritud Visual Basic 6 vorm. Kodeerimise kaudu võimaldab VBA automatiseerida ülesandeid Office'i programmides, sealhulgas Excelis. Mõnel juhul saate VBA abil Excelisse isegi uusi funktsioone lisada.

Kuigi VBA kasutamiseks peate koodiga töötama, ei tähenda see, et VBA koosneb ainult tähtedest ja numbritest. Exceli VBA abil saate luua makro, mis võimaldab lisada pilte lahtrisse või lahtrivahemikku. Loe edasi, et selle kõige kohta teada saada!

Kuidas lisada pilti lahtrisse VBA abil Excelis

Makro loomiseks Exceli lahtritesse VBA abil piltide lisamiseks ei vaja te tegelikult Visual Basicu täiustatud teadmisi. Kõik, mida pead tegema, on lubada arendaja tööriistad, luua makro ja kleepida õige kood.

Kui aga olete huvitatud VBA õppimisest ja millalgi oma koodi kirjutamisest, oleme VBA koodi kolmandas jaotises tükeldanud. Muidugi võid ka sisestage pilte Excelisse ilma VBA-d kasutamata. Kuid see artikkel räägib selle tegemisest VBA kaudu. Asume asja kallale!

instagram viewer

VBA kasutamiseks Excelis peate lubama Excelis arendaja tööriistad. See lubab lindil vahekaardi Arendaja, mis on vaikimisi keelatud.

  1. Avage Excel.
  2. Mine lehele Fail menüü.
  3. Kliki Valikud ekraani allservas. See avab Exceli suvandite akna.
  4. Minge jaotises Exceli suvandid jaotisesse Kohandage linti sakk.
  5. Under Peamised vahekaardid, Kontrollima Arendaja.

Nüüd on teie jaoks lubatud arendaja tööriistad, sealhulgas juurdepääs VBA-le. Te ei pea seda tegema iga kord, kui soovite Excelis VBA-d kasutada. Arendaja tööriistad jäävad lubatuks, kuni need keelate.

2. Makro loomine ja koodi sisestamine

Nüüd on aeg asuda makro loomise juurde. Teise võimalusena võiksite ka looge nupp VBA abil selle ülesande jaoks, kuid jääme makrode juurde.

  1. Minge Excelis lehele Arendaja sakk.
  2. Aastal Kood jaotis, valige Makrod.
  3. Sisestage uues aknas alla oma makro nimi Makro nimi. Me hakkame kasutama sisesta PhotoMacro.
  4. Klõpsake Loo.

Kui klõpsate nuppu Loo, avaneb VBA aken ja kuvab teie makro koodi. Praegu koosneb kood kahest reast: A Sub makro käivitamiseks ja an Lõpeta alam selle lõpetamiseks.

Lisame sellele makrole koodi. Lisage kahe rea vahele järgmine kood:

Hämar fotoNimiJaTee Nagu Variant
Hämar foto Nagu Pilt
photoNameAndPath = Rakendus. GetOpenFilename (Title:="Valige Foto juurdeSisestage")
Kui fotoNimiJaTee = Vale Siis Välju Sub
Määra foto = ActiveSheet. Pildid. Sisesta (fotoNimiJaPath)
Koos foto
.Left = ActiveSheet. Vahemik("A1").Vasakule
.Top = ActiveSheet. Vahemik("A1").Ülemine
.Width = ActiveSheet. Vahemik("A1").Laius
.Height = ActiveSheet. Vahemik("A1").Kõrgus
.Paigutus = 1
LõppKoos

Teie lõplik kood peaks olema umbes selline:

Te ei pea oma edusammude salvestamise pärast muretsema. Iga VBA-s tehtud muudatus salvestatakse koheselt.

Nüüd on aeg näha koodi tööl.

  1. Sulgege VBA aken.
  2. Mine lehele Arendaja vahekaart Excelis.
  3. Valige Makrod alates Kood osa.
  4. Tõstke esile äsja loodud makro.
  5. Klõpsake Jookse.

Nüüd avaneb viip, mis palub teil leida pildifaili, mida soovite sisestada. Valige oma pilt ja seejärel klõpsake Avatud. Nüüd peaksite nägema oma fotot lahtris A1!

Pange tähele, et sisestatud pilti kahaneb, et see mahuks lahtrisse A1. Saate seda muuta ja ka koodi muuta, et lisada pilt teistesse lahtritesse või isegi lahtrivahemikku. Järgmises jaotises jagame koodi lahti ja selgitame töö parameetreid.

3. Koodi lõhkumine

Selleks, et see VBA kood teie jaoks soovitud viisil töötaks, peate sellest aru saama. Kui olete seda teinud, saate koodi muuta, et lisada fotod mis tahes suuruses lahtrisse. Me hakkame koodi vähehaaval läbi vaatama, et seda oleks lihtsam mõista.

Sub insert PhotoMacro()
Hämar fotoNimiJaTee Nagu Variant
Hämar foto Nagu Pilt
photoNameAndPath = Rakendus. GetOpenFilename (Title:="Valige Foto juurdeSisestage")
Kui fotoNimiJaTee = Vale Siis Välju Sub
Määra foto = ActiveSheet. Pildid. Sisesta (fotoNimiJaPath)
Koos foto
.Left = ActiveSheet. Vahemik("A1").Vasakule
.Top = ActiveSheet. Vahemik("A1").Ülemine
.Width = ActiveSheet. Vahemik("A1").Laius
.Height = ActiveSheet. Vahemik("A1").Kõrgus
.Paigutus = 1
LõppKoos
Lõpp Sub

Kui kood käivitub, kasutame Hämar avaldus muutuja tüübi määramiseks. Meil on siin kaks muutujat: fotoNimiJaTee ja foto ise. Oleme määranud esimese kui a Variant ja viimane kui a Foto.

Sealt käivitatakse muutuja photoNameAndPath ja see avab rakenduse pildifaili asukoha hankimiseks. Seda tehakse läbi Rakendus. Hangi OpenFileName. The Pealkiri parameeter on valikuline ja selle sisu kuvatakse akna nimena.

Kasutades Kui photoNameAndPath = Väär, siis välju Sub, täpsustame, et vale või tühja aadressi andmisel tuleb protsess lõpetada. Kui aga korralik fail ette söödetakse, siis Määra foto = ActiveSheet. Pildid. Sisesta (fotoNimiJaPath) näitab, et pilt tuleks määrata fotomuutujaks, mille me varem määratlesime, ja see tuleks sisestada aktiivsesse arvutustabelisse.

Lõpuks kasutades Koos fotoga ja sellele järgnevad viis rida, täpsustame pildi paigutust. .Vasakule ja .Ülemine märkige stardikohad, samas .Laius ja .Kõrgus märkige lõpp-kohad. Kui soovite lisada pildi teistesse lahtritesse või vahemikku, peaksite neid ridu muutma.

.Paigutus näitab, kas pildi suurus peaks olema lahtritega või sisestatud vabas vormis. Selle seadistamine 1 mõõdab seda koos rakkudega.

Lõppkokkuvõttes kasutame Lõpeta ja siis Lõpeta alam makro sulgemiseks. Pange tähele, et saate muuta fotoNimiJaTee ja foto muutujad mis tahes muule teile meelepärasele nimele. Ärge unustage, et nimed oleksid kogu koodis järjepidevad.

Saate VBA-ga Excelis rohkem ära teha

Excel on tõepoolest suurepärane tööriist andmete korraldamiseks ja analüüsimiseks, kuid see ei tähenda, et Excel oleks graafika osas saamatu. Kuigi fotod ja bitmapid ei ole Exceli tugevaimad küljed, saab Excel siiski suurepäraselt nendega toime.

Kuigi saate Excelisse pilte sisestada liidese abil nagu teistes Office'i rakendustes, saate seda teha ka VBA abil. VBA abil saate selle ülesande automatiseerida ja isegi siduda teiste samaaegselt töötavate ülesannetega. Exceli VBA võimalused on lõputud.