Excel – jak zkonvertovat formátovaný text na HTML?

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ů:

  1. Uložte svůj Excel soubor do formátu .xlsm (sešity s podporou maker).
  2. Zavřete a znovu otevřete soubor.
  3. Otevřete editor VBA stisknutím kláves Alt + F11.
  4. Vložte nový modul pomocí Insert -> Module.
  5. 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:

  1. Začne novým HTML odstavcem (<p>).
  2. Prochází každý znak v buňce a kontroluje, zda je tučný.
  3. 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>).
  4. Pokračuje tímto způsobem až do konce buňky.
  5. 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.