1

Тема: как узнать по выделенному номеру сноски ее текст?

Я задаю поиск:

    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^f": .Replacement.Text = "": .Forward = True
    End With
    Selection.Find.Execute
    Set mSel = Selection

Но свойствах mSel не нашел ничего. Правд есть странное свойство: footnotes.count = 1. А потом идут все сноски item1,2,3. Не понятно, где же взять текст найденной сноски? (в идеале мне надо в одну переменную записать пару слов предшествующих сноске и во вторую ее текст. сложно ли это сделать?

Спасибо.

Post's attachments

Clipboard02.png 25.53 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

2

Re: как узнать по выделенному номеру сноски ее текст?

Selection.Footnotes(1).Range.Text ' — текст первой сноски в выделении
Selection.Footnotes(1).Index '— порядковый номер первой сноски в выделении
Лучше день потерять — потом за пять минут долететь!

3

Re: как узнать по выделенному номеру сноски ее текст?

Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "^f": .Replacement.Text = "": .Forward = True
    End With
    Selection.Find.Execute
    Set mSel = Selection

Все равно на каждое найденное выделение Ворд предлагает ознакомиться со всеми сносками. Те выдает список всех сносок с их текстами и номерами. Т.е. выделение не воспринимается как одиночная сноска (почему-то). Может зависит от версии - у меня Офис 2003.

4

Re: как узнать по выделенному номеру сноски ее текст?

Уважаемый termidor!
В названии темы Вы указали вопрос Как узнать по выделенному номеру сноски ее текст?
Ваш код поиска знака сноски, к нему не имеет никакого отношения.
Если у Вас в тексте выделена хотя бы 1 сноска, то ниже приведен макрос, который выводит на экран сообщение о номере и тексте 1-й сноски выделения.

Public Sub FootnoteText()
Dim mSel As Selection ' Объект выделение
Dim Fn As Footnote ' Объект сноска
Dim FnCount As Long ' Количество сносок в выделении
    Set mSel = Selection
        FnCount = mSel.Footnotes.Count
            If FnCount > 0 Then ' Если в выделении 1 и более сносок, то Fn - 1-я сноска выделения
                Set Fn = mSel.Footnotes(1)
            ' Выводим на экран текст сноски
                MsgBox Fn.Index & Chr(9) & Fn.Range.Text, , "Текст сноски"
            Else
            ' Сообщение об отсутствии сносок в выделении
                MsgBox "В выделеном фрагменте нет сносок!!!"
            End If
End Sub

Если же использовать код поиска сносок, то тут есть несколько вариаций макроса.
1. Нахождение сноски выше или ниже положения курсора.
2. Поиск и обработка всех сносок в выделенном фрагменте по определенному алгоритму

5

Re: как узнать по выделенному номеру сноски ее текст?

Понял - надо указывать номер один в найденном, и тогда получу все что надо. Большое спасибо!