Автор Тема: VBA Макросы: Определение порядкового номера word-таблицы, в которой находится курсор.  (Прочитано 897 раз)

Оффлайн Администратор

  • Administrator
  • Сообщений: 1574
В этой теме описана ситуация, когда в таблице находится курсор, а не когда выделен какой-то фрагмент файла, в котором находится таблица.

Вот так можно с помощью макроса (VBA) определить порядковый номер word-таблицы, в которой находится курсор:
Код:
Sub Main()

    Dim tblSel As Word.Table, lngTblIndex As Long
    Dim lngStart As Long
    Dim i As Long
   
   
    '1. Vba-именование таблицы, в которой находится курсор.
    Set tblSel = Selection.Tables(1)
   
    '2. Проверка, является ли таблица, в которой курсор, вложенной.
        ' Вложенные таблицы не относятся к документу и с ними нужно по-другому работать.
    If tblSel.NestingLevel <> 1 Then
        MsgBox "Таблица, в которой находится курсор, вложенная.", vbExclamation
        Exit Sub
    End If
   
    '3. Запись в переменную позиции начала таблицы.
    lngStart = tblSel.Range.Start
   
    '4. Просмотр всех таблиц в поисках таблицы с нужным началом.
    For i = 1 To ActiveDocument.Tables.Count Step 1
        If ActiveDocument.Tables(i).Range.Start = lngStart Then
            ' Запись порядкового номера таблицы в переменную.
            lngTblIndex = i
            ' Выход из цикла.
            Exit For
        End If
    Next i
   
    '5. Здесь, в переменной "lngTblIndex", у нас есть порядковый номер таблицы, в которой находится курсор.

End Sub