Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: BoomZoom от 14 декабря 2015, 22:51

Название: Определить номер страницы с закладкой
Отправлено: BoomZoom от 14 декабря 2015, 22:51
Здравствуйте. Скажите, пожалуйста, как сделать макрос, который бы выводил на монитор сообщение с номерами страниц, на которых есть закладки?

[вложение удалено администратором]
Название: Re: Определить номер страницы с закладкой
Отправлено: Администратор от 15 декабря 2015, 14:32
Какие макросу смотреть закладки? Все или по каким-то признакам? Может по именам закладок?
Название: Re: Определить номер страницы с закладкой
Отправлено: BoomZoom от 15 декабря 2015, 15:28
Да, можно по именам закладок.
Название: Re: Определить номер страницы с закладкой
Отправлено: Администратор от 15 декабря 2015, 15:30
Какое у закладки должно быть имя, чтобы макрос её учёл?
Название: Re: Определить номер страницы с закладкой
Отправлено: BoomZoom от 15 декабря 2015, 15:44
Закладка1, Закладка2 и т.д.
Название: Re: Определить номер страницы с закладкой
Отправлено: Администратор от 15 декабря 2015, 15:49
То есть у закладок фиксированные имена? Эти имена тогда просто в код макроса вписать?
Название: Re: Определить номер страницы с закладкой
Отправлено: BoomZoom от 15 декабря 2015, 15:50
Можно так. А какие варианты еще могут быть?
Название: Re: Определить номер страницы с закладкой
Отправлено: Администратор от 15 декабря 2015, 15:53
У закладок можно сделать одинаковый корень, но будет разный суффикс, например:
Закладка1, Закладка2 - одинаковый корень "Закладка" и разные суффиксы: 1, 2. Макрос может смотреть начало имени закладки.
Название: Re: Определить номер страницы с закладкой
Отправлено: BoomZoom от 15 декабря 2015, 16:02
Пусть будет так, как вы предлагаете.
Название: Re: Определить номер страницы с закладкой
Отправлено: Администратор от 15 декабря 2015, 16:14
Этот макрос работает с закладками, у которых имя начинается словом "Закладка".

Sub Main()
    Dim docAct As Document, bkmark As Bookmark, strMsg As String
    '1. Vba-именование активного файла.
    Set docAct = ActiveDocument
    '2. Функционал.
    For Each bkmark In docAct.Bookmarks
        ' Если имя закладки начинается словом "Закладка".
        If InStr(bkmark.Name, "Закладка") = 1 Then
            strMsg = strMsg & bkmark.Range.Information(wdActiveEndAdjustedPageNumber) & vbCr
        End If
    Next
    '3. Сообщение.
    If strMsg = "" Then
        MsgBox "В файле нет искомых закладок.", vbInformation
    Else
        MsgBox "Закладки находятся на страницах:" & vbCr & strMsg, vbInformation
    End If
End Sub
Название: Re: Определить номер страницы с закладкой
Отправлено: BoomZoom от 15 декабря 2015, 16:19
Большое спасибо! Потестирую - отпишусь!
Название: Re: Определить номер страницы с закладкой
Отправлено: BoomZoom от 16 декабря 2015, 19:04
Работает! Спасибо большое!