VSTO Word Office Interop: поиск ссылок на закладки - PullRequest
1 голос
/ 21 октября 2019

Учитывая выбор в Word, который содержит Bookmark - например, такой заголовок (это внутри события SelectionChange):

var selectionWithBookmark = e.Selection.Bookmarks.Cast<dynamic>().Select(b => b.Range as Range).FirstOrDefault();

Как найти все перекрестные ссылки (то есть Type == WdFieldType.wdFieldRef) в документе, который ссылается на эту закладку?

Я хотел бы найти не только сами Field, но и абзацы, содержащие эти поля.

Lookingдля ответов в C # или VB.

Я могу зациклить / перебрать все ссылки в документе, но нет способа связать их с закладкой (кроме свойства Code - но номер REF нена самом деле не существует на закладке либо из того, что я вижу). Чего не хватает, так это какого-то свойства Target, которое я могу сравнить с самой закладкой.

1 Ответ

1 голос
/ 23 октября 2019

Следующее утверждение в вопросе заставляет меня задуматься ...

номер REF на самом деле не существует в закладке, как я вижу.

Закладка name должна содержать номер REF, но ему будет предшествовать символ подчеркивания _, поэтому имя по умолчанию не будет отображаться в пользовательском интерфейсе.

В диалоговом окне «Закладки» есть небольшой флажок «Скрытые закладки»: щелкните по нему два, три раза, и должен отобразиться список, как показано на следующем снимке экрана.

Bookmarks dialog with REF number

Debug.Print(bookmark.Name) также должен показывать это.

Как только имя закладки известно, не должно быть трудно найти соответствующие поля REF.

...