Jak vložit obrázek do oblasti buněk

Podobné dokumenty
Slíbená princezna. Univerzální ComboBox

Tabulka obsluhovaná kódem VBA

Odstranění řádků (na základě hodnoty)

Excel Board příprava. ProExcel.cz Excel Board výuková a prezentační tabule pro Excel 1

Na úvod tip, jak kontrolovat šířku tabulky před a po změně. Chování makra ukazují obrázky. Jak změnit rastr v hotové tabulce Excelu

Spojování textových řetězců na listu

V článku Skrytý obsah na listu (1) jsme se zabývali obecnými možnosti skrývání obsahu. Dnes se na dané téma podíváme prakticky.

Panely pro práci s barvami a ohraničením v Excelu 2003 a 2010

VÝŘEZ OBLASTI BUNĚK VZORCEM

V praxi je běžné, že se ovlivňuje více prvků navzájem. Tady už si s jednou globální proměnnou nevystačíme.

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

8 Makra Příklad 4 Excel 2007

Star Trek Do temnoty (infografika na panelu)

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Generátor list nastavení

Dialog Najít a nahradit

Různé barvy v grafu pro skutečnost a plán

POVRCHOVÝ (OBRYSOVÝ GRAF)

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

VBA: VYTVOŘENÍ OBJEKTU GRAF (CHART) Deklarace proměnné typu Chart. Pro vytvoření nového grafu použijeme kolekci ChartObjects a její metodu Add.

Tematický celek 03 - Cvičné příklady

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

MS Excel makra a VBA

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Různé barvy v grafu pro skutečnost a plán

Povrchový (obrysový graf)

Hromadná změna datumu a času v buňkách

Výběr složek a souborů ve VBA

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Cvičné příklady Tematický celek 01

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Přidávání animací do programů

3MA481 Propojení Accessu a Excelu David Hach

Tabulkový kalkulátor

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

DUM 06 téma: Tvorba makra pomocí VBA

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

kontrola povinnosti údajů kontrola rozsahu čísel kontrola ové adresy, telefonního čísla nutná součást každého software

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Odstavení automatického zpracování hypertextových odkazů

'je zobrazen stavový řádek? blnstavovyradekzobrazen = Application.DisplayStatusBar. Excel stavový řádek

Tabulka aneb Seznam čili ListObject

10 Algoritmizace Příklad 2 Word 2007/ VBA

ExcelVBAmodul. Podpora pro výměnu dat automatů MICROPEL s aplikací Microsoft Excel

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

VY_32_INOVACE_08_2_04_PR

Cvičení 7: Delphi objekty CheckedBox, Radio- Button, EditBox

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Skripty základy VB, vestavěné objekty, příklady

Cvičné příklady Hodina 2

MsgBox, InputBox, FileDialog, Pravomoci vlastních funkcí (UDF) Function TESTOVKA() 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!

Standardní šířka sloupce je průměrná šířka číslic 0-9 standardního písma.

Visual Basic for Applications

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 4. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

VY_32_INOVACE_In 6.,7.10. Tvorba tabulky

Visual Basic for Application

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Řešení. ŘEŠENÍ 36 Výsledková listina soutěže

Metodický list k didaktickému materiálu

KAPITOLA 8 TABULKOVÝ PROCESOR

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Makra. Orámování oblasti

Jak na propojení Excelu s Outlookem

9 Úprava maker Příklad 4 Word 2007/ VBA

Informace o zdroji učebního textu a poučení o jeho užívaní. Petr Broža, Libor Kříž, Roman Kučera, Pavel Nygrýn

Příručka Vzdělávacího střediska Konero ke kurzu RNDr. Milan Myšák

Supernova 16 Ovládací zkratky. Akce Funkce Stolní počítač Přenosný počítač Automatické popisování grafických objektů LEVÝ CONTROL + PRAVÁ HRANATÁ

PÁS KARET. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Buňka typy buněk, formát buňky

Obsah. Úvod 15. Úvod do Excelu Práce se sešity 35

VISUAL BASIC. Práce se soubory

Tabulka jako pozadí na Ploše

VBA Excel. Sub UlozV. v příkladech. Ran. Lenka Forstová. Sub CisloOprava() eric(b. i( Dim Bunka. Bunka.Value = End If. Microsoft Next Bunka End Sub

Programujeme v softwaru Statistica

Hromadná korespondence

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

ZoomText 11 - Klávesové zkratky

Typický prvek kolekce pro české řazení

Tisk do souboru se provádí podobně jako tisk na papír, směřování tisku do souboru je dáno nastavením v ovladači tiskárny:

Skládaèka Obr 48 G15 VBP Co to dìlá: Naète vybraný obrázek (vybraný pomocí CommonDialog1), vytvoøí MxN komponent PictureBox obsahujících odpovídající

MS Word. verze Přehled programů pro úpravu textu

Pole jinak ArrayList ve VBA

V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.

Formátování buněk EU peníze středním školám Didaktický učební materiál

1. Otevřete dokument, který chcete číst. 2. Na kartě Zobrazení klikněte ve skupině Zobrazení dokumentů na položku Čtení na celé obrazovce.

Softwarový program Aplikace pro detekci rizikových zadavatelů (ADRZ)

Ignijet_2007 Externí monitor

Programujeme v softwaru Statistica

Nápověda ke cvičení 5

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Formátování obsahu adminweb

Transkript:

Vložit obrázek do listu není nijak složité. Lze využít schránku nebo kartu Vložení / Obrázek. Zarovnání do buňky či oblasti buněk (lépe řečeno přichycení k mřížce) zajistí držení klávesy ALT během přesunu či změně velikosti obrázku. V praxi narážím na dva požadavky měnit obrázek na základě výběru buňky (obsah udává zdroj obrázku) a přizpůsobovat obrázky buňkám bez zásahu uživatele (nejednotné velikosti obrázků pro produkty, logotypy, ). Obrázky pro vložení Provázanost obrázku na obsah buňky je velmi často řešena komentářem buňky. My tuto možnost ponecháme stranou ze dvou důvodů. Zobrazení komentáře nelze nikdy spolehlivě uřídit (jsou schopny se vykreslit mimo obrazovku), navíc se běžně netisknou. Jednoduše vyhradíme místo na listu pro obrázky, jeho viditelnost zajistíme příčkami a obsah budeme měnit na základě události Worksheet_Change. Excelplus.NET 1

Vybraná položka definuje vložený obrázek Nejprve startovací procedura pro případ, že načtení obrázku budete chtít realizovat s pomocí tlačítka a ne události. Sub TestVlozitObrazek() Dim rngoblastobrazek As Range Dim strcestasouborobrazek As String 'definice oblasti pro vložení obrázku Set rngoblastobrazek = Worksheets("List1").Range("B2:F10") 'zdroj obrázku strcestasouborobrazek = ThisWorkbook.Path & "\obrazek1.jpg" 'strcestasouborobrazek = ThisWorkbook.Path & "\obrazek2.jpg" 'strcestasouborobrazek = ThisWorkbook.Path & "\obrazek3.jpg" 'vymazání případných původních obrázků v oblasti Call OblastSmazatObjekty(rngOblastObrazek) 'vložení obrázku do oblasti 'vycentrování v obou směrech a nevynucené přizpůsobení 'tj. větší obrázky se zmenší, menší obrázky se nezvětší Excelplus.NET 2

Call VlozitObrazek(strCestaSouborObrazek, rngoblastobrazek, True, _ True, False) Jak vložit obrázek do oblasti buněk Následuje výpis nejdůležitější obslužné procedury. Parametry pro vycentrování jsou volitelné a stejně tak zvládá přizpůsobení menších obrázků oblasti buněk. Sub VlozitObrazek(ByVal strsouborobrazek As String, ByVal rngoblastvlozeni As _ Range, Optional ByVal bnastredvodorovne As Boolean = False, Optional ByVal _ bnastredsvisle As Boolean = False, Optional ByVal bzvetsitmensi As Boolean = _ False) Dim objobrazek As Object Dim doblastshora As Double Dim doblastzleva As Double Dim doblastsirka As Double Dim doblastvyska As Double Dim dobrazeksirka As Double Dim dobrazekvyska As Double Dim dpomersirky As Double Dim dpomervysky As Double Dim dpomermax As Double 'zamezení překreslování obrazovky Application.ScreenUpdating = False 'vložení obrázku Set objobrazek = ActiveSheet.Pictures.Insert(strSouborObrazek) 'rozměry oblasti pro vložení With rngoblastvlozeni doblastshora =.Top doblastzleva =.Left doblastsirka =.Width doblastvyska =.Height End With 'původní rozměry obrázku With objobrazek Excelplus.NET 3

dobrazeksirka =.Width dobrazekvyska =.Height End With 'maximální poměr (převrácená hodnota měřítka) dpomersirky = dobrazeksirka / doblastsirka dpomervysky = dobrazekvyska / doblastvyska dpomermax = WorksheetFunction.Max(dPomerSirky, dpomervysky) 'je potřeba obrázek zmenšit nebo je požadováno 'zvětšení malých obrázků do velikosti oblasti? 'poměr stran zachován vždy If (dpomermax > 1) Or (bzvetsitmensi = True) Then 'zmenšení (zvětšení) dsirka = dobrazeksirka / dpomermax dvyska = dobrazekvyska / dpomermax Else 'ponechání rozměrů dsirka = dobrazeksirka dvyska = dobrazekvyska dshora = doblastshora dzleva = doblastzleva 'vodorovné vycentrování? If bnastredvodorovne Then dzleva = dzleva + doblastsirka / 2 - dsirka / 2 'svislé vycentrování? If bnastredsvisle Then dshora = dshora + doblastvyska / 2 - dvyska / 2 'nastavení obrázku With objobrazek.top = dshora Excelplus.NET 4

.Left = dzleva.width = dsirka.height = dvyska End With 'odstranění proměnné z paměti Set objobrazek = Nothing 'překreslení obrazovky Application.ScreenUpdating = True Další řádky kódu VBA řeší odstranění obrázku z oblasti buněk (před načtením nového). Sub OblastSmazatObjekty(ByVal rngoblast As Range) Dim shpobjekt As Shape With rngoblast.parent 'pro každý objekt kolekce Shapes na listu For Each shpobjekt In.Shapes 'jestliže horní levý roh objektu leží v oblasti If Not Application.Intersect(shpObjekt.TopLeftCell, rngoblast) Is _ Nothing Then 'a je-li objekt typu obrázek If (shpobjekt.type = msopicture) Or (shpobjekt.type = _ msolinkedpicture) Then 'odstranění obrázku shpobjekt.delete Next shpobjekt End With Excelplus.NET 5

Jestliže chcete aplikovat změnu na základě události Worksheet_Change, pak stačí drobná obměna startovací procedury. Kód je umístěn v modulu listu. Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngoblastobrazek As Range Dim rngoblasttest As Range Dim strcestasouborobrazek As String 'oblast s názvy souborů Set rngoblasttest = Range("B13:F15") If Union(rngOblastTest, Target).Address = rngoblasttest.address Then 'definice oblasti pro vložení obrázku Set rngoblastobrazek = Range("B2:F10") 'zdroj obrázku strcestasouborobrazek = ThisWorkbook.Path & "\" & Target.Cells(1).Text 'vymazání případných původních obrázků v oblasti Call OblastSmazatObjekty(rngOblastObrazek) 'vložení obrázku do oblasti 'vycentrování v obou směrech a nevynucené přizpůsobení 'tj. větší obrázky se zmenší, menší obrázky se nezvětší Call VlozitObrazek(strCestaSouborObrazek, rngoblastobrazek, True, True, _ False) Na tomto místě předkládám ještě jednu možnost k zamyšlení. Tou je využití ovládacího prvku Image a jeho vlastností Picture a PictureSizeMode. Načítání obrázku do vlastnosti Picture zprostředkuje metoda LoadPicture. Pro PictureSizeMode doporučuji nastavení na 3 fmpicturesizemodezoom (malé obrázky se bohužel budou přizpůsobovat, i když v měřítku). Užití prvku vás zbavuje závislosti na mřížce listu. Excelplus.NET 6

Událostní procedura pak může vypadat takto: Ovládací prvek Image Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rngoblasttest As Range 'oblast s názvy souborů Excelplus.NET 7

Set rngoblasttest = Range("B13:F15") If Union(rngOblastTest, Target).Address = rngoblasttest.address Then 'načtení obrázku do prvku Image1 Me.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & Target.Cells(1).Text) Příloha: excel_vlozeni_obrazku.zip Excelplus.NET 8