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

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

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

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

    Dim tbl_sel As Table, TblIndex As Long
    Dim start As Long, i As Long
   
   
    '1. Присваиваем таблице, в которой находится курсор, имя 'tbl_sel'.
        ' Далее в коде будем обращаться к таблице по этому имени.
    Set tbl_sel = Selection.Tables(1)
   
    '2. Проверка, является ли таблица, в которой курсор, вложенной.
        ' Вложенные таблицы не относятся к документу и с ними нужно по-другому работать.
    If tbl_sel.NestingLevel <> 1 Then
        MsgBox "Таблица, в которой находится курсор, вложенная.", vbExclamation
        Exit Sub
    End If
   
    '3. Запись в переменную позиции начала таблицы.
    start = tbl_sel.Range.start
   
    '4. Просмотр всех таблиц в поисках таблицы с нужным началом.
    For i = 1 To ActiveDocument.Tables.Count
        If ActiveDocument.Tables(i).Range.start = start Then
            ' Запись порядкового номера таблицы в переменную.
            TblIndex = i
            ' Выход из цикла.
            Exit For
        End If
    Next i
   
    '5. Здесь, в переменной "TblIndex", у нас есть порядковый номер таблицы, в которой находится курсор.
        ' Отображение номера таблицы в View - Immediate Window.
    Debug.Print TblIndex
   
End Sub