Ako exportovať vyznačený text z MS Word do MS Excel vo Visual Basics for Applications

Daša Bombjaková

21.10.2023

V tomto manuáli si ukážeme, ako exportovať vyznačený text z MS Word do MS Excel spolu s číslom odseku sa vyznačený text nachádza.

Krok 1: Otvorte si Microsoft Word dokument, z ktorého chcete exportovať vyznačený text:

Krok 2: V políčku určenom na vyhľadávanie zadajte “Visual Basic Editor”.

Krok 3: Po kliknutí na Visual Basic Editor sa Vám otvorí rozhranie editora:

Krok 4: Kliknite na “Module”:

Krok 5: Otvorí sa Vám prázdne okno, do ktorého budete zadávať príkazy:

Krok 6: Skopírujte nasledujúci príkaz do prázdneho okna:

Sub ExtractHighlightedTextWithParagraphNumbers()
    Dim wdApp As Object ' Word Application
    Dim wdDoc As Object ' Word Document
    Dim xlApp As Object ' Excel Application
    Dim xlWb As Object ' Excel Workbook
    Dim xlWs As Object ' Excel Worksheet
    Dim i As Long
    Dim paraCounter As Long

    ' Create new Word and Excel instances
    Set wdApp = CreateObject("Word.Application")
    Set xlApp = CreateObject("Excel.Application")

    ' Open the Word document
    Set wdDoc = wdApp.Documents.Open("E:\VBA\bla.docx") ' Update the file path

    ' Add a new Excel workbook
    Set xlWb = xlApp.Workbooks.Add
    Set xlWs = xlWb.Sheets(1)

    ' Set Excel column headers
    xlWs.Cells(1, 1).Value = "Paragraph Number"
    xlWs.Cells(1, 2).Value = "Highlighted Text"

    ' Initialize row counter and paragraph counter
    i = 2
    paraCounter = 1

    ' Loop through all paragraphs in the Word document
    For Each para In wdDoc.Paragraphs
        ' Loop through each character in the paragraph
        For Each rng In para.Range.Words
            ' Check if the character is highlighted
            If rng.HighlightColorIndex <> wdNoHighlight Then
                ' Write the paragraph number and highlighted text to Excel
                xlWs.Cells(i, 1).Value = paraCounter
                xlWs.Cells(i, 2).Value = rng.Text
                i = i + 1
            End If
        Next rng
        ' Increment the paragraph counter
        paraCounter = paraCounter + 1
    Next para

    ' Save the Excel workbook in the same folder as the Word document
    xlWb.SaveAs "E:\VBA\HighlightedTextWithParagraphNumbers.xlsx" ' File will be saved as "HighlightedTextWithParagraphNumbers.xlsx" in E:\VBA\

    ' Close the Excel workbook
    xlWb.Close

    ' Close the Word document
    wdDoc.Close

    ' Clean up
    Set xlWs = Nothing
    Set xlWb = Nothing
    Set xlApp = Nothing
    Set rng = Nothing
    Set wdDoc = Nothing
    Set wdApp = Nothing
End Sub

Krok 7: V príkaze je potrebné urobiť zmeny v nasledujúcom riadku:

Set wdDoc = wdApp.Documents.Open("E:\VBA\bla.docx")

V zátvorke je opísané, kde v PC sa nachádza MS Word dokument, z ktorého budú exportované vyznačené časti. V tomto prípade ide o disk “E”, zložku s názvom “VBA” a docx dokument s názvom “bla.docx”.

Všeobecné odporúčanie: odstráňte z názvov dokumentov diakritiku.

Krok 8: V príkaze je potrebné urobiť zmeny v nasledujúcom riadku:

xlWb.SaveAs "E:\VBA\HighlightedTextWithParagraphNumbers.xlsx"

Týmto príkazom sa vytvorí MS Excel dokument s názvom “HighlightedTextWithParagraphNumbers.xlsx”. Príkaz tiež stanovuje miesto, kde bude dokument uložený; v tomto prípade na disku E, v priečinku s názvom “VBA”. Zmeňte lokalitu súboru podľa vlastného uváženia.

Krok 9: Po upravení príkazu, klinite na “Run Sub” tlačidlo v paneli nástrojov aplikácie Visual Basic Editor:

“Run Sub” tlačidlo sa podobá na symbol “prehrať”.

Krok 10: Skontrolujte priečinok, či sa Vám vytvoril Excel súbor “HighlightedText.xlsx” s exportovanými dátami:

Krok 11: Kontrola obsahu exportovaných dát:

Skontrolujte, či sa Vám vytvorili tri stĺpce a či údaje korešpondujú s východzím word dokumentom: