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

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

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

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.

Tabulka obsluhovaná kódem VBA

Dialog Vzhled stránky

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

Slíbená princezna. Univerzální ComboBox

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

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

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

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

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

Dialog Najít a nahradit

Povrchový (obrysový graf)

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...

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

POVRCHOVÝ (OBRYSOVÝ GRAF)

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

Jak ovládat ručičku tachometru (ukazatel)?

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

Makra. Orámování oblasti

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

První cestou, jak vynechat jakákoliv data v grafu, je jejich skrytí, ať už přímo či filtrem aplikovaným na řádcích.

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

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

VÝŘEZ OBLASTI BUNĚK VZORCEM

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

8. Formátování. Úprava vzhledu tabulky

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

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

MS Excel makra a VBA

Úvod do problematiky ÚPRAVY TABULKY

EXCEL IV. část. 7. Vzorce a funkceuložení, tisk a doplňky 8. Používané zkratky. Zpracoval: Ing. Pavel branšovský. pro potřebu VOŠ a SŠSE

6. Statistica (pokračování) Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová

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

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

Generátor list nastavení

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

8 Makra Příklad 4 Excel 2007

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

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

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

Star Trek Do temnoty (infografika na panelu)

Popisná statistika. Komentované řešení pomocí MS Excel

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

CZ.1.07/1.5.00/

Analýza dat na PC I.

3MA481 Propojení Accessu a Excelu David Hach

Efektivní práce s Excelem (středně pokročilí uživatelé)

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_05_IVT_MSOFFICE_03_Excel

Scribus základní kurz

Algoritmizace prostorových úloh

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

NADSTAVBOVÝ MODUL MOHSA V1

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

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

Na chvilku se vžijte do situace, kdy pořádáte jednodenní konferenci a potřebujete naplánovat jednotlivé přednášky včetně přestávek.

VKLÁDÁNÍ OBJEKTŮ - tabulka

Předmluva 11 Typografická konvence použitá v knize Úvod do Excelu

Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica

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.

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

Tabulka aneb Seznam čili ListObject

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

POPISNÁ STATISTIKA Komentované řešení pomocí programu Statistica

Excel - databáze. Opakování. Soubor, který jsme upravovali. Upravený soubor. Hrubá mzda = počet kusů * Kč za kus B6=B4*B5

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Zadání Máme data hdp.wf1, která najdete zde: Bodová předpověď: Intervalová předpověď:

MS Excel 2007 Kontingenční tabulky

4. Vzorce v Excelu Tipy pro práci s Wordem Kontingenční tabulky v Excelu

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel II Anotace:

Laboratorní zdroj - 6. část

VISUAL BASIC. Práce se soubory


Tabulkový procesor. Základní rysy

DUM 05 téma: Úvod do VBA for application

MS EXCEL. MS Excel

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

Implementace LL(1) překladů

Sada 2 Microsoft Word 2007

Barvy ve VBA jsou tématem, které dokáže nadchnout, nudit i otrávit. Každopádně se mu vyhnout nemůžeme. Pojďme na to. Práce s barvou Záznamník maker

Data x Informace x Znalosti

Naučte se víc... Microsoft Office Excel 2007 PŘÍKLADY

Hromadná korespondence

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.

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Základní popis Toolboxu MPSV nástroje

Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

3. Aritmetika nad F p a F 2

Office Arena 2017 Krajské kolo

Pracovní prostředí Excel 2010

Microsoft Office Outlook 2003 s aplikací Business Contact Manager

Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Kateřina Raichová. Materiál je publikován pod licencí Creative Commons.

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

4. Vzorce v Excelu Tipy pro práci s Wordem Kontingenční tabulky v Excelu

Visual Basic for Application

Metoda nejmenších čtverců Michal Čihák 26. listopadu 2012

Transkript:

Znáte to. Máte v Excelu hotovou tabulku, ne-li celý formulář, hrajete si s každým pixelem, aby se vše vešlo na jednu A4, a zjistíte, že potřebujete přidat další informace, sloupec. Ve výsledku to znamená ještě lépe využít prostor, což je často doprovázeno nutností jemnějšího rastru (mřížky) a opětovným slučováním buněk. Práce k zbláznění. Předkládám makro, které ve výběru buněk přidá další sloupce tak, aby došlo ke zjemnění rastru (lidově řečeno se zdvojnásobí počet sloupců ve výběru při zachování původní šířky). Na úvod tip, jak kontrolovat šířku tabulky před a po změně. Jemnější rastr příprava Chování makra ukazují obrázky. ProExcel.cz 1

Jemnější rastr Ukázka 1 ProExcel.cz 2

Jemnější rastr Ukázka 2 ProExcel.cz 3

Jemnější rastr Ukázka 3 A zde je slíbené makro. Důrazné varování: Změna provedená kódem je nevratná, proto sešit před použitím ukládejte/zálohujte! ProExcel.cz 4

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Sub DvakratJemnejsiRastr() Dim rngbunka As Range Dim rngsloupce As Range Dim rngcelesloupce As Range Dim lngtopstyle As Long Dim lngtopcolor As Long Dim lngrightstyle As Long Dim lngrightcolor As Long Dim lngbottomstyle As Long Dim lngbottomcolor As Long Dim intpocetsloupcu As Integer Dim intsirkapixely As Integer Dim intnovasirkapixely As Integer Dim i As Integer Dim j As Integer Dim dblnovasirkacolumnwidth As Double 'dots per inch (DPI) Const intpocetbodunapalec As Integer = 72 'pixels per inch (PPI) 'Microsoft: 96 PPI, Apple: 72 PPI Const intpocetpixelunapalec As Integer = 96 'zamezeni prekreslovani a prepoctu listu Application.ScreenUpdating = False Application.Calculation = xlcalculationmanual 'prevzeti zpracovavane oblasti z vyberu bunek Set rngsloupce = Selection.Columns Set rngcelesloupce = Selection.EntireColumn.Columns 'pocet sloupcu intpocetsloupcu = rngcelesloupce.columns.count 'pro vsechny sloupce For i = 1 To intpocetsloupcu 'skutecne poradi puvodniho sloupce 'po pridavani dalsich sloupcu j = 2 * i - 1 'zjisteni sirky sloupce a prepocet na pixely intsirkapixely = rngcelesloupce.columns(j).width / intpocetbodunapalec _ * intpocetpixelunapalec 'nova sirka sloupce bude polovicni... intnovasirkapixely = CInt(intSirkaPixely / 2) 'zpetny prepocet na vynucenou velikost v ColumnWidth 'vychazi z regrese na experimentalnich hodnotach dblnovasirkacolumnwidth = 0.142851762457295 * intnovasirkapixely - _ 0.707857121632131 'pridani sloupce vlevo od sloupce nasledujiciho rngcelesloupce.columns(j + 1).Insert Shift:=xlToRight 'nastaveni nove sirky puvodniho a pridaneho sloupce rngcelesloupce.columns(j).columnwidth = dblnovasirkacolumnwidth rngcelesloupce.columns(j + 1).ColumnWidth = dblnovasirkacolumnwidth 'pro vsechny bunky pridaneho sloupce 'a v nem vyuzite bunky For Each rngbunka In Intersect(ActiveSheet.UsedRange, _ rngcelesloupce.columns(j + 1)).Cells 'pokud se nejedna o sloucenou bunku If Not rngbunka.mergecells Then 'a pritom posledni sloupec... If (j + 1) = (2 * intpocetsloupcu) Then With rngbunka.offset(0, -1).MergeArea 'nacteni vlastnosti okraju z bunky vlevo lngtopstyle =.Borders(xlEdgeTop).LineStyle lngtopcolor =.Borders(xlEdgeTop).Color lngrightstyle =.Borders(xlEdgeRight).LineStyle lngrightcolor =.Borders(xlEdgeRight).Color lngbottomstyle =.Borders(xlEdgeBottom).LineStyle lngbottomcolor =.Borders(xlEdgeBottom).Color End With End If 'slouceni bunek Range(rngBunka.Offset(0, -1), rngbunka).merge 'a pro posledni sloupec... If (j + 1) = (2 * intpocetsloupcu) Then With rngbunka.mergearea 'aplikovani stylu okraju po slouceni.borders(xledgetop).linestyle = lngtopstyle.borders(xledgetop).color = lngtopcolor.borders(xledgeright).linestyle = lngrightstyle.borders(xledgeright).color = lngrightcolor.borders(xledgebottom).linestyle = lngrightstyle.borders(xledgebottom).color = lngbottomcolor End With End If End If Next rngbunka Next i 'povoleni prepoctu listu a prekreslovani Application.Calculation = xlcalculationmanual Application.ScreenUpdating = True End Sub ProExcel.cz 5

Pár poznámek. Jak si můžete přečíst v článku Šířka sloupce a výška řádku v Excelu, nastavování šířky sloupce je peklo. V daném případě nestačí načítat a nastavovat vlastnost ColumnWidth, neboť je velmi nepřesná. Proto jsem pro definování nových šířek zpracovával informaci v pixelech (nutné hrátky s DPI) a následně podle sady experimentálních hodnot jsem si zjistil rovnici závislosti mezi ColumnWidth (písmo Calibri 11) a pixely (Zobrazení: Normálně) z lineární regrese. Mode: normal x,y analysis Polynomial degree 1, 1786 x,y data pairs. Correlation coefficient (r^2) = 0.9999998493133465 Standard error = 0.02860707295026823 Coefficient output form: simple list: -7.0785712163213077e-001 1.4285176245729497e-001 Mode: normal x,y analysis Polynomial degree 2, 1786 x,y data pairs. Correlation coefficient (r^2) = 0.9999998516878186 Standard error = 0.028380787766365163 Coefficient output form: simple list: -6.9971323150786735e-001 1.4282467233145049e-001 1.5092743985123490e-008 Copyright (c) 2013, P. Lutus http://arachnoid.com. All Rights Reserved. Závislost je a není lineární. U malých hodnot bohužel hodnoty ulítávají a kdo ví, jak je Microsoft aproximuje. Každopádně pro dostatečnou přesnost není potřeba užít polynom, korelační koeficient to nijak zvlášť neovlivní, jen holt data prokládáme přímkou, která (nelogicky) neprochází počátkem souřadného systému. Proč jsem nepoužil regresi dostupnou přímo Excelu? Trochu lenost použít funkce listu a koeficienty odečtené z rovnice v grafu nejsou dostatečně přesné (korelační koeficient je zaokrouhlen na 1, i když je chybovost podstatná). I přesto, že odchylka korelačního koeficientu od hodnoty 1 je až na 6 desetinném místě, přeci jen u sady sloupců s velmi malou šířkou již není možné zajistit původní celkovou šířku tabulky bez viditelné odchylky. Ale to je prostě daň. A byl tu další problém. Jak víme, Excel umí přidávat sloupce pouze vlevo od výběru. U posledního sloupce tak musíme řešit kupříkladu ohraničení přidaného sloupce, pokud nechceme v algoritmu udělat ProExcel.cz 6

výjimku. V 95 % případů makro funguje. Občas se mi bohužel stalo, že Excel nenačetl barvu pravého ohraničení a namísto toho použil barvu černou (hodnota 0). Popravdě řečeno neměl jsem již sílu ošetřit těch 5 % případů, ani zjistit příčinu chování (chybu v algoritmu) a zjednat nápravu. Slučování po řádcích přes všechny sloupce výběru Jako bonus přikládám kód, který slučuje buňky výběru v každém řádku, a to přes všechny sloupce výběru (podle odhadu je to má druhá nejvyužívanější obecná procedura). Makro uvedené výše již funkčnost obsahuje, ale leckdy vám těch pár řádků zkrátí dobu otravného ručního znovuslučování přes přidaný sloupec. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Sub SloucitPoRadcich() Dim rngradek As Range Application.ScreenUpdating = False Application.Calculation = xlcalculationmanual For Each rngradek In Selection.Rows rngradek.mergecells = True Next rngradek Application.Calculation = xlcalculationautomatic Application.ScreenUpdating = True End Sub Sešit ke stažení: uprava_rastru.zip ProExcel.cz 7