Conversia unui tabel sau a unui rând de tabel la text

Pentru a converti un întreg tabel sau un rând sau un număr de rânduri în text, specificați tabelul, rândul sau rândurile și utilizați metoda ConvertToText. Acest lucru este frecvent util dacă copiați și lipiți informații de pe paginile de Internet; ele conțin adesea tabele și poate doriți doar conținutul, textul, nu și structura tabelului în sine. Datorită limitărilor limbajului HTML utilizat pentru a descrie aspectul paginii web, tabelele HTML sunt uneori utilizate pentru spațiere și alte motive care nu au legătură cu afișarea datelor tabelare reale. Aceste "tabele false" pot să arate bizar atunci când sunt adăugate ca text în Word. Pentru a elimina aceste artefacte enervante, consultați macrocomanda exemplu la sfârșitul acestei secțiuni. Este o macrocomandă utilă care poate fi adăugată la proiectul Normal în Editorul VBA al Word.

Metoda ConvertToText are următoarea sintaxă:

expression.ConvertTotext(Separator, Nested Tables)

Aici, expression este o expresie necesară care returnează un obiect Table, un obiect Row, sau o colecție Rows. Separator este un argument opțional de tip Variant care specifică caracterul separatorului (numit și caracter delimitator), utilizat pentru a marca locul în care se aflau coloanele divizate. Valorile posibile sunt următoarele:

  • wdSeparateByCommas separă informațiile din coloană cu virgule.
  • wdSeparateByDefaultListSeparator separă informațiile din coloană cu caracterul Other (caracterul scris în caseta text care se află lângă butonul radio Other din caseta de dialog Convert Table To Text).
  • wdSeparateByParagraphs separă informațiile din coloană cu marcaje de paragraf.
  • wdSeparateByTabs (separatorul implicit dacă nu specificați unul) separă informația din coloane după caracterul Tab.
  • Alternativ, aveți posibilitatea să specificați un caracter separator la alegere ca șir sau între ghilimele duble. De exemplu, introduceți Separator:="|" pentru a utiliza ca separator o bară verticală [|]. (Deși aici aveți posibilitatea să furnizați mai multe caractere separator, Word utilizează numai primul caracter.)

Următoarea instrucțiune face conversia primului tabel din selecția curentă în text utilizând un asterisk (*) ca și caracter separator:

Selection.Tables(1).ConvertToText Separator:="*"

Puteți folosi metoda ConvertToText cu obiectul Table, obiectul Row, sau colecția Rows. Următoarea instrucțiune face conversia numai a primului rând al tabelului selectat în text delimitat de caracterul Tab:

Selection.Tables(1).Rows(1).ConvertToText Separator:=wdSeparateByTabs

Dacă trebuie să continuați lucrul cu conținutul tabelului după ce l-ați convertit, asociați o zonă tabelului în timp ce îl convertiți. Apoi puteți lucra cu obiectul Range pentru a manipula informațiile. De exemplu, următoarele comenzi convertesc primul tabel din documentul denumit Cleveland Report.docm în text separat de paragrafe și atribuie intervalul exTable informațiilor convertite, apoi copie intervalul, creează un document nou și adaugă în el informaţiile:

Dim exTable As Range
Set exTable = Documents("Cleveland Report.docm").Tables(1). _
  ConvertToText(Separator:=wdSeparateByParagraphs) 
exTable.Copy 
Documents.Add 
Selection.Paste

Adesea, atunci când copiați și lipiți informații dintr-o pagină Web, informațiile sunt într-un format tabelar. Dacă adăugați astfel de tabele în Word, de obicei nu arată bine, sunt prea voluminoase și pot fi dificil de editat sau de format. Cu alte cuvinte, doriți să eliminați definițiile tabelului de pe pagina web, dar să lăsați datele într-un format utilizabil din Word.

Următoarea macrocomandă face aceste lucruri:

Sub Untable()
On Error Resume Next
Selection.Rows.ConvertToText Separator:=wdSeparateByCommas, NestedTables:= _ 
True
Selection.MoveDown Unit:=wdLine, Count:=1 
If Err Then MsgBox "Nu a fost detectat niciun tabel."
End Sub

Pentru a utiliza această macrocomandă, faceți clic undeva în textul pe care l-ați lipit de pe Internet pentru a pune cursorul de inserare într-un tabel (sau într-un tabel suspectat; adesea nu arată ca tabelele, ci doar ca o zonă de formatare bizară), apoi executați macrocomanda. Poate fi necesar să executați această macrocomandă de mai multe ori pentru a elimina complet toate resturile de formatare tabelară rămase din HTML-ul original. Macrocomanda vă anunță când au fost eliminate toate structurile de masă.