Создавайте закладки в Word 2010 программно, используя имя заголовка в качестве имени закладки
Мне нужно создавать закладки в Word 2010 программно, с именем заголовка в качестве имени закладки.
У меня есть следующий код, который делает слово закладкой, но имя закладки остается таким же, как строка Heading 1
доступно только в переменной name:
Sub bookmarking()
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:=" Heading 1"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End Sub
Вместо Heading 1
в переменной name я хочу содержимое из буфера обмена. Пожалуйста, помогите мне заменить это Heading 1
с содержимым буфера обмена.
1 ответ
Решение
Использовать DataObject
от Microsoft Forms 2.0 Object Library
:
Private Function GetClipboardData()
Dim objDataObject As MSForms.DataObject ''need to add reference in Tools |References
Set objDataObject = New MSForms.DataObject
objDataObject.GetFromClipboard
On Error Resume Next
GetClipboardData = objDataObject.GetText
If Err.Number = -2147221404 Then
MsgBox "Error: current clipboard data is either empty or is not text. Clibpoard must contain text."
End If
End Function
Затем верните свой основной код, укажите имя закладки в виде данных буфера обмена:
...
.Add Range:=Selection.Range, Name:=GetClipboardData()
...
Это хорошее начало для вас? Есть и другие способы, которые могут быть более надежными в зависимости от ваших потребностей. Однако это должно послужить хорошим подтверждением концепции.