Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Anton от 03 ноября 2016, 14:56

Название: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Anton от 03 ноября 2016, 14:56
Добрый день.
Возможно ли программно установить курсор в начало зоны сносок, если сноски вообще существуют?
Название: Re: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Администратор от 03 ноября 2016, 21:24
В ворде сноски можно увидеть в двух местах:
1) в режиме разметки сноски находятся внизу на странице;
2) в режиме черновика есть специальная область, где собраны все сноски.

Вы куда хотите поставить курсор? В какое место из этих двух?
Название: Re: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Anton от 03 ноября 2016, 22:47
Хотел, чтобы курсор в режиме разметки страницы устанавливался в начало текста самой первой сноски. Про режим черновика я знаю, спасибо.
Название: Re: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Администратор от 04 ноября 2016, 12:43
Например, если в файле используются страничные сноски, то на странице внизу есть сноски. Сноски могут быть на нескольких страницах.
Как макросу узнать, на какой странице нужно перейти в сноски?
Название: Re: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Anton от 04 ноября 2016, 19:21
Просто перейти к самой первой сноске, не важно, на какой странице она будет. Просто к началу текста самой первой в документе сноски.
Название: Re: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Администратор от 04 ноября 2016, 20:16
Sub Макрос()

    Dim rng As Range
   
    ' Переход к первой страничной сноске, какая есть в файле.
    If ActiveDocument.Footnotes.Count > 0 Then
        ' Vba-именование области страничных сносок.
        Set rng = ActiveDocument.StoryRanges(wdFootnotesStory)
        ' Изменение области, чтобы она стала представлять из себя точку вставки.
        rng.SetRange 0, 0
        ' Вставка курсора в область страничных сносок.
        rng.Select
    End If

End Sub

Sub Макрос2()

    Dim rng As Range
   
    ' Переход к первой концевой сноске, какая есть в файле.
    If ActiveDocument.Endnotes.Count > 0 Then
        ' Vba-именование области концевых сносок.
        Set rng = ActiveDocument.StoryRanges(wdEndnotesStory)
        ' Изменение области, чтобы она стала представлять из себя точку вставки.
        rng.SetRange 0, 0
        ' Вставка курсора в область концевых сносок.
        rng.Select
    End If

End Sub
Название: Re: Word VBA: Как программно установить курсор в зону сносок?
Отправлено: Anton от 04 ноября 2016, 23:19
Огромное-преогромное спасибо!!!