Úvodní stránka · Fórum · Ke stažení · Odkazy · Links (EN, DE, CZ, SK) 10. září 2010, Irma
Menu
Úvodní stránka
Časté dotazy k Excelu
Fórum
Kategorie článků
Databanka kódů
Ke stažení
Svět Excelu v RSS
Odkazy
Kontakt

Excel - funkce na listu
Excel - funkce VBA
Excel - klávesové zkratky
Excel - znaky, klávesnice
Excel - standardní barvy
Excel - slovník menu
Excel - konstanty
Excel - technické údaje
DVD Servis Office
Excel menu 2003 (Ribbon)
Offset Statistic

Chat
Sponzorované odkazy
Přihlášení
Přezdívka

Heslo



Nejste členem?
Zaregistrujte se co nejdříve.

Zapomněli jste heslo?
Nechte si poslat nové.
Kdo je online
Hosté online: 5
Žádný člen není online

Registrovaní členové: 537
Neaktivovaní členové: 47
Nejnovější člen: Veverka
Pohotovost Excel
Excel VBA - první pomoc

ICQ status

Skype
Hry online
Sudoku
Sudoku
Sudoku
Sudoku
Excelplus.NET
Excelplus.NET - RSS 0.91 spampoison.com
Google Pagerank - excelplus.netGoogle Pagerank Antispam.er.cz
Statistiky

Vygenerování tabulky Excelu v čistě textové podobě

TipyMož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
  1. Sub TabulkaTextoveProDBF()
  2.  
  3. Dim Oblast As Range
  4. Dim Sloupec As Range
  5. Dim Radek As Range
  6. Dim Bunka As Range
  7. Dim Ret As String
  8. Dim Retezec As String
  9. Dim RetezecOddel As String
  10. Dim i As Integer
  11. Dim j As Integer
  12. Dim PocetRadku As Integer
  13. Dim PocetSloupcu As Integer
  14. Dim PoleDelky()
  15.  
  16. 'nastavení vstupní oblasti
  17. Set Oblast = Selection
  18.  
  19. PocetRadku = Oblast.Rows.Count
  20. PocetSloupcu = Oblast.Columns.Count
  21.  
  22. ReDim PoleDelky(1 To PocetSloupcu)
  23.  
  24. RetezecOddel = "+"
  25.  
  26. 'zjištění maximální délky obsahu buňky ve sloupci
  27. 'a sestavení řetězce oddělujícího řádku
  28. For Each Sloupec In Oblast.Columns
  29. i = i + 1
  30. Maximum = Len(Sloupec.Cells(1).Text)
  31. For Each Bunka In Sloupec.Cells
  32. Maximum = WorksheetFunction.Max(Maximum, Len(Bunka.Text))
  33. Next Bunka
  34. PoleDelky(i) = Maximum
  35. RetezecOddel = RetezecOddel & String(Maximum, "-") & "+"
  36. Next Sloupec
  37.  
  38. Retezec = "|"
  39.  
  40. 'sestavení jednotlivých řádků
  41. For Each Radek In Oblast.Rows
  42. For Each Bunka In Radek.Cells
  43. j = j + 1
  44. Ret = Ret & Bunka.Text & Space(PoleDelky(j) - Len(Bunka.Text)) & "|"
  45. Next Bunka
  46. Retezec = Retezec & Ret & vbCrLf & RetezecOddel & vbCrLf & "|"
  47. j = 0
  48. Ret = ""
  49. Next Radek
  50.  
  51. 'včetně ohraničení shora
  52. 'Retezec = RetezecOddel & vbCrLf & Left(Retezec, Len(Retezec) - 3)
  53. Retezec = Left(Retezec, Len(Retezec) - 3)
  54.  
  55. Debug.Print Retezec
  56.  
  57. End Sub


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.

Komentáře

Žádný komentář doposud nebyl přidán. Buďte první...

Přidat komentář

Pro přidání komentáře musíte být přihlášeni.

Hodnocení

Musíte být přihlášeni, abyste mohli hodnotit.

Prosím přihlašte se nebo se zaregistrujte.

Žádné hodnocení ještě nebylo zaznamenáno.
... nejlépe se zpracovávají tabulky mléčné čokolády