2009-10-29 5 views
5

Windows Form 응용 프로그램에서 다음 코드를 시도하고 있습니다. Word API에 대한 많은 경험이 없기 때문에 내가 뭘 잘못하고 있는지 잘 모르겠다.하지만 GoTo 명령은 책갈피를 찾을 수 없다. 마지막 줄에 "이 책갈피가 존재하지 않습니다."라는 COMException이 항상 나타납니다.Microsoft Word API 및 책갈피 기능을 사용하여 프로그래밍 방식으로 Word 문서를 특정 위치로 열려면 어떻게해야합니까?

그러나 wordDoc.Bookmarks.get_Item(ref name) 메서드는 책갈피를 찾지 않습니다! 무엇을 제공합니까?

Object fileName = System.Windows.Forms.Application.StartupPath + "\\Bookmarks.docx"; 
Object readOnly = false; 
Object isVisible = true; 
Object missing = System.Reflection.Missing.Value; 

Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application(); 
Microsoft.Office.Interop.Word.Document wordDoc = new Microsoft.Office.Interop.Word.Document(); 

wordApp.Visible = true; 
wordDoc = wordApp.Documents.Open(ref fileName, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing); 

Object item = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToBookmark; 
Object whichitem = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToFirst; 
Object count = 1; 
Object name = "Location3"; 

Bookmark bMark = wordDoc.Bookmarks.get_Item(ref name); 
wordDoc.GoTo(ref item, ref whichitem, ref count, ref name); 

답변

7

어떻게 책갈피 개체를 사용하는 방법에 대한?

object bookmarkName = "Location3"; 
    if (wordDoc.Bookmarks.Exists(bookmarkName.ToString())) 
    { 
     Bookmark bookmark = wordDoc.Bookmarks.get_Item(ref bookmarkName); 
     bookmark.Select(); 
    } 

이 창을 스크롤하면 내가 확인하지 않았다 ... 그러나 이것은 당신이 시작하는 것이다.


편집 :이 기록 된 VB 코드 나는 Goto-> 북마크 매크로를 수행 할 때

Selection.GoTo What:=wdGoToBookmark, Name:="Location3" 

당신이 WhichItem에 대한 Type.Missing을 전달 시도하고 그래서 복제 카운트 했을 VB 전화?

+0

를 사용하여, 고토 명령을 사용합니다. GoTo 명령의 문제점을 잘 모르겠습니다. 나는 그것의 모든 조합을 시도했다. –

1

필립 월리스의 답변이 훌륭합니다.

는 bookmark.Select() 명령이 마법처럼 일했다 Word.Application 객체

object What = Word.WdGoToItem.wdGoToBookmark; 
object oMissing = System.Reflection.Missing.Value;  
wordApp.Selection.GoTo(What, oMissing, oMissing, "bookMarkName"); 
+0

Application.Selection.GoTo를 사용하여 북마크를 페이지 상단에 배치하는 반면, Bookmark 객체를 사용하면 표시된 페이지의 맨 아래에 북마크를 배치합니다 (실제로 북마크를 보려면 아래로 스크롤해야 함). – Mike

관련 문제