Vygenerování tabulky Excelu v čistě textové podobě
Možná už se vám stalo, že jste potřebovali zveřejnit část tabulky, ať už v e-mailu, na fóru, na ICQ apod., kdy ale nebylo možné zaslat přílohu, a to ani formou obrázku. Pro vás je dnešní tip na vygenerování textové podoby tabulky.
Jako příklad poslouží jednoduchá tabulka z obrázku níže.
Následuje obslužný kód VBA. Před jeho spuštěním vyberte oblast tabulky i s hlavičkou.
Kód VBA
Sub TabulkaTextoveProDBF()
Dim Oblast As Range
Dim Sloupec As Range
Dim Radek As Range
Dim Bunka As Range
Dim Ret AsString
Dim Retezec AsString
Dim RetezecOddel AsString
Dim i AsInteger
Dim j AsInteger
Dim PocetRadku AsInteger
Dim PocetSloupcu AsInteger
Dim PoleDelky()
'nastavení vstupní oblasti
Set Oblast = Selection
PocetRadku = Oblast.Rows.Count
PocetSloupcu = Oblast.Columns.Count
ReDim PoleDelky(1To PocetSloupcu)
RetezecOddel = "+"
'zjištění maximální délky obsahu buňky ve sloupci
'a sestavení řetězce oddělujícího řádku
ForEach Sloupec In Oblast.Columns
i = i + 1
Maximum = Len(Sloupec.Cells(1).Text)
ForEach Bunka In Sloupec.Cells
Maximum = WorksheetFunction.Max(Maximum, Len(Bunka.Text))
Kód použitý pro zjišťování maximální délky obsahu buňky ve sloupci není ani elegantní, ani rychlý, ale pro tuto chvíli jej necháme být. Níže už je výsledek příkazu Debug.Print v okně Immediate (Ctrl+G v editoru VBA). Řetězec je pochopitelně možné uložit do paměti nebo textového souboru, ať už ručně zkopírováním, nebo programově. Správné zarovnání zajišťuje neproporcionální font Courier. Veškerý obsah buněk je zarovnán vlevo.