0
Dim AppWD As Object
Dim objDoc As Object
Dim objDocProdTP As Object
...
Set AppWD = CreateObject("Word.Application") 'Word als Object starten
AppWD.Visible = True
Set objDocProdTP = AppWD.documents.Open(workPath & "\vorlagen\LFPostTemplate.docx")
Set objDoc = AppWD.documents.Open(workPath & "\vorlagen\LFTemplate2.docx")
...
MsgBox (objDoc.Bookmarks.Count)
objDoc.Goto what:=wdGoToBookmark, Name:="lblSFirma"

MSGBox は 11 個のブックマークを返します (LFPostTemplate.docx のブックマークの総数と一致します)。

しかし、私が試みるすべてのブックマーク名は「このブックマークは存在しません」を返します

問題は非常に単純だと思います...しかし、Googleには解決策がないようです

4

2 に答える 2

2

遅延バインディング (Excel から?) で Word を起動するので、単語定数が定義されていない可能性があると思います。の代わりに -1 を使用してみてくださいwdGotoBookmark

objDoc.Goto what:=-1, Name:="lblSFirma"

(または、Microsoft Word xx.xx Object Libraryへの参照を設定すると、定数が使用可能になります)

于 2013-07-21T11:47:51.800 に答える
0

以下のコードが Excel 2010 で動作するようになりました。ウィンドウ ビュー モードを切り替えて、ブックマークがあるページがウィンドウの上部 (ブックマークがある場所) に表示されるようにします。

Public Sub OpenWordDocAndGotoBookmark(strDocPathAndName As String, strBookmark As String)
    Dim AppWD As Object
    Dim objDoc As Object
    Dim objBookmark As Object

    Set AppWD = CreateObject("Word.Application") ' Start Word
    AppWD.Visible = True

    Set objDoc = AppWD.Documents.Open(strDocPathAndName)

    Set objBookmark = objDoc.Bookmarks(strBookmark)

    ' Move cursor to left of Bookmark
    objDoc.Range(objBookmark.Start, objBookmark.Start).Select

    ' Set window to make top of page with bookmark appear at top of window
    AppWD.ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitFullPage
    AppWD.ActiveWindow.ActivePane.View.Zoom.PageFit = wdPageFitBestFit
End Sub
于 2015-01-28T18:54:04.577 に答える