Eu tentei a seguinte abordagem para evitar deixar o Word. Desta vez, é baseado no Regex disponível no VBA.
Abra o editor do Visual Basic (Alt + F11)
Adicionar referência:
Ferramentas - > Referências - > Microsoft VBScript Regular Expressions 5.5
Sub RemoveInitialSpacesInTablesCells()
Dim NoOfRows As Integer
Dim NoOfColums As Integer
Dim CellValue As Variant
Dim RegEx As RegExp
Dim Expr As String
Dim tbl As Table
Dim temp As String
Set RegEx = New RegExp
Expr = "^(\s+)"
For Each tbl In ActiveDocument.Tables
NoOfRows = tbl.Rows.Count()
NoOfColums = tbl.Columns.Count()
For i = 1 To NoOfRows
For j = 1 To NoOfColums
CellValue = tbl.Cell(i, j)
RegEx.Global = True
RegEx.IgnoreCase = False
RegEx.MultiLine = False
RegEx.Pattern = Expr
temp = RegEx.Replace(CellValue, "")
If Len(temp) > 2 Then
temp = Left(temp, Len(temp) - 2)
End If
tbl.Cell(i, j).Range.Text = temp
Next j
Next i
Next tbl
End Sub
Saídas exemplificativas dessa função
INPUT - representa o valor da célula antes que a regra seja aplicada
OUTPUT - representa o valor da célula depois que a regra é aplicada
INPUT=""
OUTPUT=""
INPUT=""
OUTPUT=""
INPUT="a"
OUTPUT="a"
INPUT="a
b"
SAÍDA="a
b"
INPUT="< br>
"
OUTPUT=" "
INPUT="
c "
OUTPUT=" c "
INPUT="
b"
OUTPUT="a
b"