Formátování textu v Excelu je užitečné pro vizuální zobrazení dat, ale někdy je potřeba tento text převést do HTML. Tento návod vám ukáže, jak na to pomocí VBA kódu.
Obsah
Vytvoření funkce
Nejdříve je potřeba vytvořit VBA funkci, která převede formátovaný text v Excelu do HTML. Postupujte podle následujících kroků:
- Uložte svůj Excel soubor do formátu
.xlsm
(sešity s podporou maker). - Zavřete a znovu otevřete soubor.
- Otevřete editor VBA stisknutím kláves
Alt + F11
. - Vložte nový modul pomocí
Insert -> Module
. - Vložte následující kód do nového modulu:
Function KonvertujHtml(rng As Range) As String
Dim Cell As Range
Dim Html As String
Dim CharIndex As Long
Dim Char As String
Dim FontBold As Boolean
Dim PrevFontBold As Boolean
For Each Cell In rng
Html = "<p>"
PrevFontBold = False
For CharIndex = 1 To Len(Cell.Value)
Char = Mid(Cell.Value, CharIndex, 1)
FontBold = Cell.Characters(CharIndex, 1).Font.Bold
If FontBold <> PrevFontBold Then
If FontBold Then
Html = Html & "<b>"
Else
Html = Html & "</b>"
End If
PrevFontBold = FontBold
End If
Html = Html & Char
Next CharIndex
If PrevFontBold Then
Html = Html & "</b>"
End If
Html = Html & "</p>"
Next Cell
KonvertujHtml = Html
End Function
Použití funkce v Excelu
Po vložení kódu a zavření editoru VBA můžete použít funkci KonvertujHtml
přímo v buňce Excelu. Například:
- Pro převod obsahu buňky
A1
do HTML použijte vzorec:=KonvertujHtml(A1)
. - Pro převod více buněk, například oblasti
A1:B2
, použijte vzorec:=KonvertujHtml(A1:B2)
.
Funkce vrátí HTML kód jako text v buňce, který můžete dále použít.
Jak funkce funguje
Funkce KonvertujHtml
prochází každou buňku v určeném rozsahu (rng
) a převádí její obsah na HTML.
Pro každou buňku:
- Začne novým HTML odstavcem (
<p>
). - Prochází každý znak v buňce a kontroluje, zda je tučný.
- Pokud se formátování změní (například z normálního na tučné), vloží odpovídající HTML tagy (
<b>
nebo</b>
). - Pokračuje tímto způsobem až do konce buňky.
- Uzavře HTML odstavec (
</p>
).
Tímto způsobem je zajištěno, že HTML výstup odpovídá formátování v Excelu.
Příklady
Jednoduchý text
Pokud máte v buňce A1
text „Hello World“ a „World“ je tučně, výsledek funkce =KonvertujHtml(A1)
bude:
<p>Hello <b>World</b></p>
Více buněk
Pokud máte oblast A1:B2
s následujícím obsahem:
Hello | World |
Excel | VBA |
Výsledek funkce =KonvertujHtml(A1:B2)
bude:
<p>Hello</p><p><b>World</b></p><p><b>Excel</b></p><p>VBA</p>
Shrnutí
Konverze formátovaného textu z Excelu do HTML je díky VBA funkci snadná. Tímto způsobem můžete snadno převést jakýkoli formátovaný text do HTML pro použití na webu nebo v jiných aplikacích.