Jak vkládat obrázky pomocí aplikace Excel VBA

Obsah:

Anonim

Ahoj! Pokoušíte se rozhýbat palubní desku pomocí smysluplných obrázků. Nebo se jen pokoušíte vložit obrázek do buňky Excel VBA. Obrázky nemůžete vkládat do buněk aplikace Excel, ale můžete změnit jejich velikost tak, aby se vešly do buňky aplikace Excel. Ručně to zabere spoustu času a je to nepříjemné. Jaké je tedy řešení? Uhodli jste správně, makro VBA. Nyní kódujeme.

Níže je uveden kód excel vba pro vložení obrázku ze složky do buňky nebo daného rozsahu. Stiskněte Alt+F11, vložte modul a zkopírujte tento kód.

Nebojte se, vysvětlil jsem to níže, abyste to mohli upravit podle svých potřeb.

Vložte obrázek do buňky Excelu pomocí VBA do buňky nebo daného rozsahu

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")

End Sub
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range)

'vloží obrázek a upraví jeho velikost tak, aby odpovídal rozsahu TargetCells

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Pokud TypeName (ActiveSheet) „Pracovní list“, pak Exit Sub

If Dir (PictureFileName) = "" Then Exit Sub

'import obrázku

Nastavit p = ActiveSheet.Pictures.Insert (PictureFileName)

'určit pozice

S TargetCells

t = .Nahoře

l = .Vlevo

w = .Offset (0, .Columns.Count) .Vlevo - .Vlevo

h = .Offset (.Rows.Count, 0). Nahoru - .Nahoru

Konec s

'poziční obrázek

S p

.Nahoře = t

.Vlevo = l

.Šířka = š

.Výška = h

Konec s

Nastavit p = Nic

End Sub

Vysvětlení:

Část 1:

Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")

End Sub

Výše uvedený podprogram pouze volá náš hlavní podprogram InsertPictureInRange, který přebírá pouze dva argumenty. Nejprve adresu souboru obrázku s jeho názvem a za druhé Rozsah, kam chcete obrázek vložit do Excelu.

Část 2:

Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'vloží obrázek a změní jeho velikost tak, aby odpovídal rozsahu TargetCellsDim p jako objekt, t jako dvojitý, l jako dvojitý, w jako dvojitý, h jako dvojitý

Pokud TypeName (ActiveSheet) „Pracovní list“, pak Exit Sub

If Dir (PictureFileName) = "" Then Exit Sub

'import obrázku

Nastavit p = ActiveSheet.Pictures.Insert (PictureFileName)

'určit pozice

S TargetCells

t = .Nahoře

l = .Vlevo

w = .Offset (0, .Columns.Count) .Vlevo - .Vlevo

h = .Offset (.Rows.Count, 0). Nahoru - .Nahoru

Konec s

'poziční obrázek

S p

.Nahoře = t

.Vlevo = l

.Šířka = š

.Výška = h

Konec s

Nastavit p = Nic

End Sub

Toto je hlavní podprogram, který vloží a změní velikost obrázku tak, aby odpovídal danému rozsahu. Pojďme se do toho ponořit.

Dim p As Object, t As Double, l As Double, w As Double, h As Double

Tento řádek je pouze proměnnou deklarací, kterou budeme potřebovat. Poznámka p Jako proměnná objektu. Tato proměnná udrží náš obrázek.

Pokud TypeName (ActiveSheet) „Pracovní list“, pak Exit Sub

Zkontroluje, zda je aktivní list pracovním listem nebo ne. Pokud tomu tak není, okamžitě opustí kód a nic se nestane.

If Dir (PictureFileName) = "" Then Exit Sub

Zkontrolujte, zda jste zadali adresu obrázku pro vložení fotografie do buňky aplikace Excel. Pokud jste jej neposkytli, okamžitě skončí a nic se nestane.

Nastavit p = ActiveSheet.Pictures.Insert (PictureFileName)

Toto je nejdůležitější řádek. V tomto řádku používáme funkci Vložit list s akty. Obrázky namítají a vložily do objektu p, který jsme deklarovali dříve. Nyní pomocí p můžeme snadno upravit šířku a délku obrázku.

With TargetCells t = .Top l = .Left w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0) .Top - .Top End With 

Tento segment právě získá z daného rozsahu délku, šířku, nahoře a vlevo.

With p. Top = t. Left = l. Width = w Height = h End With

Tato část upravuje obraz na daný rozsah. A je hotovo. Nakonec jsme to osvobodili tím, že jsme to nastavili na nic.

Nastavit p = Nic

Tento řádek uvolňuje paměť.

Tento kód bude fungovat v Excelu 2016, Excelu 2013, Excelu 2010 a Excelu 2007.

Zde jsem chtěl vložit obrázek v rozsahu A1: C10. Za tímto účelem jsem níže upravil svůj kód

Dílčí TestInsertPictureInRange () InsertPictureInRange "C: \ Users \ Manish Singh \ Downloads \ biker.jpg", _Rozsah("A1: C10")

End Sub

A tohle jsem dostal. Přesně to, co jsem chtěl.


Tak jo. Tento kód použijte k vložení obrázku do buňky nebo rozsahu aplikace Excel. Pohrajte si s kódem. Zkuste vložit různé formáty, podivné rozsahy a uvidíte, co se stane. Pokud máte nějaké dotazy nebo se potýkáte s jakoukoli výzvou, zeptejte se mě v sekci níže.
Stáhnout soubor

Vkládání obrázků pomocí VBA v aplikaci Microsoft Excel 2016

Oblíbené články:

50 zkratek aplikace Excel pro zvýšení produktivity

Jak používat funkci VLOOKUP v Excelu

Jak používat funkci COUNTIF v aplikaci Excel

Jak používat funkci SUMIF v aplikaci Excel