Visual Basic for Application, zkráceně VBA, je forma Visual Basic 6 integrovaná do programů Microsoft Office. Prostřednictvím kódování vám VBA umožňuje automatizovat úlohy v aplikacích Office, včetně Excelu. V některých případech můžete dokonce přidávat nové funkce do Excelu pomocí VBA.
Ačkoli musíte pracovat s kódem, abyste mohli používat VBA, neznamená to, že VBA jsou všechna písmena a čísla. Pomocí jazyka VBA v aplikaci Excel můžete vytvořit makro, které vám umožní vkládat obrázky do buňky nebo oblasti buněk. Čtěte dále a dozvíte se o tom vše!
Jak vložit obrázek do buňky pomocí VBA v Excelu
K vytvoření makra pro vkládání obrázků do buněk Excelu pomocí VBA ve skutečnosti nepotřebujete žádné pokročilé znalosti jazyka Visual Basic. Vše, co musíte udělat, je povolit nástroje pro vývojáře, vytvořit makro a vložit správný kód.
Pokud se však chcete naučit VBA a někdy si napsat svůj vlastní kód, rozebrali jsme kód VBA ve třetí části. Samozřejmě můžete také vkládání obrázků do Excelu bez použití VBA. Ale tento článek je o tom, jak to udělat přes VBA. Pojďme pracovat!
Abyste mohli používat VBA v Excelu, musíte v Excelu povolit nástroje pro vývojáře. Tím povolíte kartu Vývojář na pásu karet, která je ve výchozím nastavení zakázána.
- Otevřete Excel.
- Přejít na Soubor Jídelní lístek.
- Klikněte na Možnosti ve spodní části obrazovky. Otevře se okno Možnosti aplikace Excel.
- V Možnosti aplikace Excel přejděte na Přizpůsobit pás karet tab.
- Pod Hlavní karty, šek Vývojář.
Nyní jsou pro vás povoleny vývojářské nástroje, včetně přístupu k VBA. Nemusíte to dělat pokaždé, když chcete použít VBA v Excelu. Vývojářské nástroje zůstanou aktivní, dokud je nezakážete.
2. Vytvoření makra a vložení kódu
Nyní je čas pustit se do vytváření makra. Případně můžete také vytvořit tlačítko pomocí VBA pro tento úkol, ale zůstaneme u maker.
- V Excelu přejděte na Vývojář tab.
- V Kód sekce, vyberte Makra.
- V novém okně zadejte název svého makra Název makra. Budeme používat vložitPhotoMacro.
- Klikněte Vytvořit.
Po kliknutí na Vytvořit se otevře okno VBA a zobrazí se kód pro vaše makro. Právě teď se bude kód skládat ze dvou řádků: A Sub pro spuštění makra a an End Sub abych to ukončil.
Pojďme do tohoto makra přidat nějaký kód. Mezi dva řádky přidejte následující kód:
Ztlumit název fotografie a cestu Tak jako Varianta
Ztlumená fotka Tak jako Obrázek
photoNameAndPath = Aplikace. GetOpenFilename (Title:="Vybrat Fotografie naVložit")
Li photoNameAndPath = Nepravdivé Pak Výstup Sub
Soubor foto = ActiveSheet. obrázky. Vložit (název fotografie a cesta)
S fotografie
.Left = ActiveSheet. Rozsah("A1").Vlevo, odjet
.Top = ActiveSheet. Rozsah("A1").Horní
.Width = ActiveSheet. Rozsah("A1").Šířka
.Výška = ActiveSheet. Rozsah("A1").Výška
.Umístění = 1
KonecS
Váš konečný kód by měl být něco jako níže:
Nemusíte si dělat starosti s ukládáním svého postupu. Každá změna, kterou provedete ve VBA, se okamžitě uloží.
Nyní je čas vidět kód v práci.
- Zavřete okno VBA.
- Přejít na Vývojář kartu v Excelu.
- Vybrat Makra z Kód sekce.
- Zvýrazněte makro, které jste právě vytvořili.
- Klikněte Běh.
Nyní se otevře výzva k vyhledání souboru obrázku, který chcete vložit. Vyberte svůj obrázek a poté klikněte OTEVŘENO. Nyní byste měli vidět svou fotografii v buňce A1!
Všimněte si, že vložený obrázek je zmenšen tak, aby se vešel do buňky A1. Můžete to změnit a také změnit kód pro vložení obrázku do jiných buněk nebo dokonce do rozsahu buněk. V další části rozebereme kód a vysvětlíme parametry při práci.
3. Prolomení kodexu
Aby vám tento kód VBA fungoval tak, jak chcete, musíte mu porozumět. Jakmile to uděláte, můžete změnit kód a vložit fotografie do libovolné buňky v jakékoli velikosti. Projdeme si kód kousek po kousku, aby byl srozumitelnější.
Sub insertPhotoMacro()
Ztlumit název fotografie a cestu Tak jako Varianta
Ztlumená fotka Tak jako Obrázek
photoNameAndPath = Aplikace. GetOpenFilename (Title:="Vybrat Fotografie naVložit")
Li photoNameAndPath = Nepravdivé Pak Výstup Sub
Soubor foto = ActiveSheet. obrázky. Vložit (název fotografie a cesta)
S fotografie
.Left = ActiveSheet. Rozsah("A1").Vlevo, odjet
.Top = ActiveSheet. Rozsah("A1").Horní
.Width = ActiveSheet. Rozsah("A1").Šířka
.Výška = ActiveSheet. Rozsah("A1").Výška
.Umístění = 1
KonecS
Konec Sub
Jakmile se kód spustí, použijeme Ztlumit příkaz k určení typu proměnné. Máme zde dvě proměnné: photoNameAndPath a fotografie sám. První jsme určili jako a Varianta a druhý jako a Fotografie.
Odtud se spustí proměnná photoNameAndPath a otevře aplikaci pro zjištění místa pobytu souboru obrázku. To se provádí skrz Aplikace. GetOpenFileName. The Titul parametr je volitelný a obsah v něm se zobrazuje jako název okna.
Použitím Pokud photoNameAndPath = False, pak Exit Sub, specifikujeme, že pokud je zadána neplatná nebo prázdná adresa, proces by měl být ukončen. Pokud je však podán správný soubor, pak Nastavit fotografii = ActiveSheet. obrázky. Vložit (název fotografie a cesta) označuje, že obrázek by měl být nastaven jako proměnná fotografie, kterou jsme definovali dříve, a měl by být vložen do aktivní tabulky.
Konečně použití S fotkou a pět řádků, které za ním následují, podrobně rozvádíme umístění obrázku. .Vlevo, odjet a .Horní označte místa startu, zatímco .Šířka a .Výška označte koncová místa. Pokud chcete vložit obrázek do jiných buněk nebo do rozsahu, pak toto jsou řádky, které byste měli změnit.
.Umístění označuje, zda má být velikost obrázku s buňkami nebo vložena ve volné formě. Nastavení na 1 bude velikost s buňkami.
Nakonec používáme Konec s a pak End Sub pro uzavření makra. Všimněte si, že můžete změnit photoNameAndPath a fotografie proměnné na jakýkoli jiný název, který chcete. Jen nezapomeňte udržovat názvy konzistentní v celém kódu.
Udělejte více v Excelu s VBA
Excel je skutečně skvělý nástroj pro organizování a analýzu dat, ale to neznamená, že je Excel neobratný, pokud jde o grafiku. Přestože fotografie a bitmapy nejsou nejsilnější stránkou Excelu, Excel je stále dokonale schopen s nimi zacházet.
Přestože můžete vkládat obrázky do Excelu pomocí rozhraní jako v jiných aplikacích Office, můžete to udělat také pomocí VBA. S VBA můžete tuto úlohu automatizovat a dokonce ji spojit s jinými úlohami, aby se spouštěly současně. Možnosti s VBA v Excelu jsou nekonečné.