2014-01-15 3 views
0

Я работаю над макросом в Word (он также использует Excel, но nvm), и мне нужно проверить, находится ли курсор в настоящее время между двумя определенными закладками.Word VBA - проверьте, находится ли курсор между двумя закладками

Если честно, я не знаю, как подойти к проблеме. Я использовал google, я использовал поиск stackoverflow и ничего не нашел в этой теме. Это мой первый VBA для Word.

Пожалуйста, поймите, что я не предоставляю никакого кода - как я уже сказал, понятия не имею, как попытаться написать его, и мои исследования не дали никаких результатов.

+0

, в каком направлении вы хотите указать, какие закладки следует учитывать? написав его имя? –

+0

Точно, давая свои имена. – murvs

ответ

1

Следующая функция вернет False или True в результате проверки, если начало вашего выбора находится между двумя закладками, переданными по имени функции. Неважно, в каком порядке вы передаете имя закладок.

Function BetweenBookmarks(FirstBookmarkName, SecondBookmarkName) 

    If Selection.Start > ActiveDocument.Bookmarks(FirstBookmarkName).Range.End _ 
     And _ 
     Selection.End < ActiveDocument.Bookmarks(SecondBookmarkName).Range.Start Then 

      BetweenBookmarks = True 

    ElseIf Selection.Start > ActiveDocument.Bookmarks(SecondBookmarkName).Range.End _ 
     And _ 
     Selection.End < ActiveDocument.Bookmarks(FirstBookmarkName).Range.Start Then 

      BetweenBookmarks = True 
    Else 

      BetweenBookmarks = False 
    End If 
End Function 

Функция может быть вызвана следующим образом:

Debug.Print BetweenBookmarks("First", "Second") 
Debug.Print BetweenBookmarks("Second", "First") 

Вы могли бы сделать некоторые другие изменения по своему усмотрению путем изменения .End и .Start свойства внутри функции.

+0

Большое спасибо. Я не знал, что могу использовать> и murvs

+1

, если это работает для вас, не забудьте сделать [ЭТО] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235). –

+0

Сделано! Сегодня я спешил, и я здесь новый. – murvs