Come copiare tabelle da Word a Excel

Copiare tabelle da Word a Excel con una macro

Un amico si è trovato con molti file Word contenenti numerose tabelle che andavano copiate e incollate in un file Excel. Per non impazzire… ha chiesto il mio aiuto e così è nato un video che qui commento.

Vediamo insieme come risolvere il problema su un file Word contenente 3 tabelle. Scriveremo una breve macro VBA.

Procedimento

0) apro il file contenente le tabelle
1) in Word premo ALT+F11. Questa combinazione ci porta nella finestra del Visual Basic Editor dove posso scrivere la macro
2) Creo un riferimento a Excel: Strumenti – Riferimenti e poi spunto Microsoft Excel 15.0 Object Library (15 se ho Excel 2013, 14 se ho il 2010, 12 se ho il 2007)
3) Tasto destro a sinistra su Normal nella finestra del progetto e poi clic su Inserisci-Modulo. In tal modo la macro sarà memorizzata nel modello Normal.
4) Nel foglio bianco che si apre creo la mia routine scrivendo:

Sub sCopiaTabellaSuExcel()

End Sub

In mezzo a queste due righe scriveremo il nostro codice:

Dim oXL As Excel.Application
Dim wkb As Excel.Workbook
Dim wks As Excel.Worksheet
Dim tbl As Table
' apro excel
Set oXL = New Excel.Application
' rendo visibile l'applicazione
oXL.Visible = True
' creo una cartella di lavoro
Set wkb = oXL.Workbooks.Add
' per ogni tabella in word
For Each tbl In ActiveDocument.Tables
    ' seleziono la tabella
    tbl.Select
    ' copio
    Selection.Copy
    ' creo un foglio di lavoro in excel
    Set wks = wkb.Worksheets.Add
    ' incollo in A1 il contenuto della tabella
    wks.Range("A1").PasteSpecial xlPasteValues
' passo alla eventuale successiva tabella word
Next

Ora, per eseguire il codice è sufficiente che il cursore sia in mezzo alla nostra procedura e poi premere il tasto F8: le istruzioni saranno eseguite una alla volta. Oppure F5 e tutto sarà eseguito automaticamente. In pochi secondi le nostre 3 tabelle saranno copiate ciascuna in un foglio di lavoro di Excel. Naturalmente, modificando il codice opportunamente, potremmo dire a Word: vai nella cartella “Dati”, apri uno per volta tutti i file Word e copia le tabelle in Excel. Inoltre, le tabelle potrebbero anche essere incollate nello stesso foglio di lavoro e non in fogli di lavoro diversi, come abbiamo visto in questa macro. Insomma, l’importante è cominciare a capire che copia e incolla non è sempre l’unica soluzione! E poi si può sempre e solo migliorare…