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

Podobné dokumenty
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...

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í

Slíbená princezna. Univerzální ComboBox

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

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

VISUAL BASIC. Práce se soubory

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

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

Tabulka obsluhovaná kódem VBA

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

Dialog Vzhled stránky

POVRCHOVÝ (OBRYSOVÝ GRAF)

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

Dialog Najít a nahradit

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

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

Visual Basic for Applications

Algoritmizace a programování

Pokud Windows 8 nemáte, můžete si situaci nasimulovat i ve Windows 7 a starších.

VÝŘEZ OBLASTI BUNĚK VZORCEM

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

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

Povrchový (obrysový graf)

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

8 Makra Příklad 4 Excel 2007

Vzorec. Operátory v Excelu. Operátor přiřazení

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

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

Rotace, transpozice a zrcadlení matice hodnot

Generátor list nastavení

Visual Basic for Application

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.

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

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

KAPITOLA 10. Vytváření funkcí

Programovací jazyk Pascal

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

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

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

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

DUM 06 téma: Tvorba makra pomocí VBA

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

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Cvičné příklady Hodina 8 Cvičný 1

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

VBA jako nástroj tvorby vlastních funkcí pro zkvalitnění výstupu v MS Excel

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

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

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

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

Implementace LL(1) překladů

Úvodní kód VBA berte na tomto místě spíš jako informativní, i když je okomentovaný, smysl má odkrokovaný a to za současného sledování dění na listu.

Poslední nenulová číslice faktoriálu

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.

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

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

Tabulkový procesor. Základní rysy

Pozn č. 1: Matematickým ekvivalentem pro pravdivostní hodnotu True je ve Visual Basicu -1 (autora bych škrtil a topil).

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

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

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

MS Excel makra a VBA

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

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

'============================================================== Data\Priklady\04_Zpracovani_dat\ ' Název souboru 04_01_Comparison.

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

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:

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

Níže uvedená tabulka obsahuje technické údaje a omezení aplikace Excel (viz také článek Technické údaje a omezení aplikace Excel (2007).

Sada 1 - Základy programování

Úvod do programování 6. hodina

Sloučená buňka kolik vidíte v ohraničené oblasti celkem čtverců?

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

Makra. Orámování oblasti

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

VBA jako validační nástroj hromadného zpracování dat

KAPITOLA 1 Několik slov o Excelu Pás karet 10 Panel nástrojů Rychlý přístup 11 Tlačítko Office 11

LabView jako programovací jazyk II

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

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

Cvičné příklady Hodina 2

NPRG030 Programování I, 2010/11

Článek je napsán pro českou verzi Excelu 2010, ale věřím, že i v jných verzích si dovedete poradit.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

2 Strukturované datové typy Pole Záznam Množina... 4

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

Jeden z mírně náročnějších příkladů, zaměřený na úpravu formátu buňky a především na detailnější práci s grafem (a jeho modifikacemi).

NPRG030 Programování I, 2016/17 1 / :58:13

Programujeme v softwaru Statistica

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

15. Projekt Kalkulačka

Sada 1 - Základy programování

MS ACCESS A MS WORD V KAŽDODENNÍ PRAXI

Porovnání dvou seznamů

Jak na propojení Excelu s Outlookem

CZ.1.07/1.5.00/

Transkript:

Spojování textů (textových řetězců) v Excelu patří sice mezi triviální záležitosti, přesto věřím, že si v dnešním článku každý najde to své. Pojďme na to. Spojování textových řetězců Nebudu zde dlouze popisovat něco, co lze vyjádřit snadno obrázkem. Spojování textových řetězců na listu Řetězce spojujeme s pomocí ampersandu (znaku &), nikoliv znakem plus jako u čísel. Výsledkem spojení textového řetězce a čísla je také textový řetězec. Ve vzorcích se textový řetězec objevuje v uvozovkách a mezera je znak jako každý jiný (na listu si vyzkoušejte funkci ZNAK(32)). Odřádkování mají na starosti také znaky ASCII tabulky (zpravidla se používá ZNAK(13) spolu se ZNAK(10), někdy stačí i samotné užití ZNAK(10)). Pozn. Ručního zalomení prostého textu v buňce dosáhnete stiskem ALT+ENTER. Tip Víte, jak jednoduše zřetězíte obsah několika buněk? Ve volné buňce se vzorcem odkažte na danou oblast a ještě v režimu editace stiskněte F9. Dojde k částečnému výpočtu (dosazení hodnot). Výsledek ořízněte o úvodní znak rovná se a složené závorky a máte hotovo. Excelplus.NET 1

Tip na zřetězení (dílčí výpočet s pomocí F9) Výstup není úplně ideální. Kupříkladu pro Data / Ověření bychom se museli ještě zbavit uvozovek a naopak užití ve VBA a jeho Array vyžaduje jako oddělovač čárku. Ukážeme si později, jak na to s vlastní funkcí. A jak se provádí zřetězení pod VBA? Sub SpojovaniRetezcuA() Dim strjmeno As String Dim strprijmeni As String Dim strjmenoprijmeni As String Dim strdvaradky As String Dim strtabulator As String strjmeno = "František" strprijmeni = "Koudelka" 'prosté spojení řetězců 'nepoužívejte znak + pro spojení Excelplus.NET 2

strjmenoprijmeni = strjmeno & " " & strprijmeni MsgBox strjmenoprijmeni 'odřádkování 'konstanta Visual Basicu představující dva znaky ASCII '13 (CR, Carriage Return, "návrat vozíku") 'a 10 (LF, Line Feed, "posun o řádek") 'lze použít i konstanty vblf nebo vbnewline strdvaradky = "1. řádek" & vbcrlf & "2. řádek" MsgBox strdvaradky 'tabulátor, odřádkování strtabulator = "Položka 1: " & vbtab & "nenalezena" _ & vbnewline _ & "Položka 2: " & vbtab & 36 MsgBox strtabulator End Sub Prosté spojování řetězců ve VBA Ve VBA ještě zůstaneme a úlohu rozšíříme pro více textových vstupů. Sub Techniky() Const cstroddelovac As String = ", " Dim aretezce() Dim strtempa As String Excelplus.NET 3

Dim strtempb As String Dim rngbunka As Range 'a) Technika nabalování 'pro každou buňku v oblasti... For Each rngbunka In Range("rngRetezce") 'nabalení řetězce a oddělovače strtempa = strtempa & rngbunka.text & cstroddelovac Next rngbunka 'oříznutí posledního oddělovače strtempa = Left(strTempA, Len(strTempA) - Len(cstrOddelovac)) 'b) Technika Join 'překlopení jednosloupcové pojmenované oblasti buněk 'do jednorozměrného (vodorovného) pole aretezce = WorksheetFunction.Transpose(Range("rngRetezce")) 'sloučení položek pole do řetězce 'mezi nimi volitelný oddělovač strtempb = Join(aRetezce, cstroddelovac) End Sub Výše uvedenou proceduru odkrokujte. Technika nabalování řetězců je nejrozšířenější, ale nepatří mezi efektivní. Vyžaduje spoustu paměťově náročných operací a ve finále musíme řetězec ještě ořezávat. Práci s polem a funkcemi Join (a její sestřičkou Split) si vryjte do paměti. Bude se vám hodit v mnoha kulišárnách. Nyní naše programové snažení zapracujeme do tří vlastních funkcí. Public Function epfreteza(oblast As Range, Optional Oddelovac As String = _ vbnullstring) As String Dim rngbunka As Range Dim strtemp As String 'pro každou buňku v oblasti Excelplus.NET 4

For Each rngbunka In Oblast 'pokud není buňka prázdná... If Not IsEmpty(rngBunka) Then 'nabalování řetězců strtemp = strtemp & rngbunka.text & Oddelovac End If Next rngbunka 'řetězec oříznut od posledního oddělovače epfreteza = Left(strTemp, Len(strTemp) - Len(Oddelovac)) End Function Public Function epfretezb(oblast As Range, Optional Oddelovac As String = _ vbnullstring, Optional Uvozovky As Boolean = False, Optional Docistit As _ Boolean = True) As String Dim strtemp As String Dim struvozovky As String With WorksheetFunction 'Transpose (funkce listu TRANSPOZICE) 'převedení svislé oblasti 'do vodorovného jednorozměrného pole 'Join 'převod pole do řetězce položek 'mezi nimi volitelně oddělovac strtemp = Join(.Transpose(Oblast), Oddelovac) struvozovky = Chr(34) 'vložit položky do uvozovek? If Uvozovky = True Then 'ano strtemp = struvozovky & Replace(strTemp, Oddelovac, struvozovky & _ Excelplus.NET 5

End If Oddelovac & struvozovky) & struvozovky 'odstranit nadbytečné mezery? If Docistit = True Then 'ano 'Trim (funkce listu PROČISTIT) 'ořezání od nadbytečných mezer strtemp =.Trim(strTemp) End If End With epfretezb = strtemp End Function Public Function epfodstavec(oblast As Range) As String 'převedení svislé oblast 'do vodorovného jednorozměrného pole 'funkce listu TRANSPOZICE 'převod pole do řetězce položek 'mezi nimi mezera 'ořezání od nadbytečných mezer 'funkce listu PROČISTIT With WorksheetFunction epfodstavec =.Trim(Join(.Transpose(Oblast), Chr(32))) End With End Function První dvě funkce epfreteza a epfretezb se liší užitou technikou. Druhá z nich pak ještě nabízí možnost zbavení se nadbytečných mezer. Funkce epfodstavec se snad hodí v případě, kdy odstavec zkopírovaný přes schránku se v Excelu rozkouskuje do jednotlivých buněk a vy je budete chtít znovu poskládat do bloku. Pozn. Tento článek se nevěnuje funkcím do detailu, přesto se sluší Excelplus.NET 6

říci alespoň to, že jejich parametry deklarované jako Optional jsou volitelné. Spojování textových řetězců Příloha excel_spojovani_retezcu.zip Vlastní funkce pro spojování řetězců Excelplus.NET 7