Ștergerea celulelor

Pentru a șterge celulele, utilizați metoda Delete cu obiectul corespunzător Cell sau cu colecția Cells. Când ștergeți una sau mai multe celule, trebuie să specificați ce se întâmplă cu restul tabelului, dacă celulele din dreapta celor șterse se deplasează la stânga sau dacă celulele de sub cele șterse se deplasează în sus.

Sintaxa pentru metoda Delete din colecția Cells și obiectul Celulă este următoarea:

expression.Delete [ShiftCells]

Aici, expression este o expresie care returnează o colecție Cells sau un obiect Cell. ShiftCells este un argument opțional de tip Variant care specifică modul în care ar trebui să se mute celulele de sub sau din dreapta celulei / celulelor șterse. Utilizați aceste valori:

  • wdDeleteCellsEntireColumn șterge întreaga coloană pe care se află celula (sau celulele) specificată.
  • wdDeleteCellsEntireRow șterge întregul rând.
  • wdDeleteCellsShiftLeft mută celulele la stânga pentru a umple golul.
  • wdDeleteCellsShiftUp mută celulele pentru a umple golul.

Următoarea instrucțiune șterge prima celulă din primul rând al primului tabel din documentul activ și mută celelalte celule din primul rând la stânga pentru a umple golul:

ActiveDocument.Tables(1).Rows(1).Cells(1).Delete _ ShiftCells:=wdDeleteCellsShiftLeft

Pentru macrocomenzile care permit utilizatorului să facă o selecție într-un tabel, se recomandă să determinați câte rânduri sau coloane se află în selecție înainte de a decide să schimbați celulele. Următorul exemplu verifică numărul de rânduri și coloane dintr-o selecție. Dacă selecția este doar o singură celulă sau dacă selecția este într-o singură coloană, codul șterge celula sau celulele și mută celelalte celule din rând la stânga. Dacă selecția conține mai multe celule dintr-o coloană, codul șterge celulele și mută celelalte celule din coloană în sus. Dacă selecția se întinde pe mai multe coloane și rânduri, codul afișează o casetă de mesaj care solicită utilizatorului să facă o selecție pe un singur rând sau pe o singură coloană:

With Selection
If .Columns.Count > 1 And .Rows.Count > 1 Then
MsgBox "Selectati celule doar de pe un rand " _
& "sau doar de pe o coloana."
End
Else
  If .Cells.Count > 1 Then
If .Columns.Count > 1 Then
  .Cells.Delete ShiftCells:=wdDeleteCellsShiftUp
Else
  .Cells.Delete ShiftCells:=wdDeleteCellsShiftLeft End If
   Else
.Cells.Delete ShiftCells:=wdDeleteCellsShiftLeft 
   End If 
 End If 
End With