Word VBA Макросы: Как обратиться/выделить текст в ячейке в таблице в ворде?

Автор blacktesta, 04 ноября 2019, 20:19

blacktesta

С помощью мыши можно выделить ячейку, а можно выделить текст в ячейке полностью. Это будут два разных выделения.

Саму ячейку можно выделить таким кодом (выделяется первая ячейка в первой таблице):
ActiveDocument.Tables(1).Cell(1, 1).Select

А как выделить весь текст в ячейке при помощи VBA?

Администратор

Выделение текста ячейки:
Макрос
Sub Макрос1()
   
    Dim tbl As Table
   
   
    ' Присваиваем первой таблице имя "tbl", чтобы было удобно читать и писать код.
    Set tbl = ActiveDocument.Tables(1)
    ' Выделение первой ячейки в таблице.
    tbl.Cell(1, 1).Select
    ' Убираем с конца символ-кружок.
    Selection.MoveEnd Unit:=wdCharacter, Count:=-1
   
    ' Здесь у нас выделен весь текст ячейки.
        ' Например, можно посмотреть текст ячейки.
        ' Если ячейка пустая, то вернётся символ-кружок, а не пустая строка.
        ' Вывод текста в View - Immediate Window.
    Debug.Print Selection.Text
   
End Sub
[свернуть]

Не всегда есть необходимость выделять (использование Selection), а достаточно использовать Range:
Макрос
Sub Макрос2()
   
    Dim tbl As Table, rng As Range
   
   
    ' Присваиваем первой таблице имя "tbl", чтобы было удобно читать и писать код.
    Set tbl = ActiveDocument.Tables(1)
    ' Присваиваем имя "rng" содержимому ячейки.
    Set rng = tbl.Cell(1, 1).Range.Duplicate
    ' Убираем с конца символ-кружок.
    rng.MoveEnd Unit:=wdCharacter, Count:=-1
   
    ' Здесь "rng" - это весь текст ячейки.
        ' Например, можно посмотреть текст ячейки.
        ' Если ячейка пустая, то вернётся пустая строка.
        ' Вывод текста в View - Immediate Window.
    Debug.Print rng.Text
   
End Sub
[свернуть]

blacktesta

Огромное спасибо!!! Все работает. По видимому загвоздка была в этом символе-кружке.