Announcement

Collapse
No announcement yet.

wdStory wird nicht erkannt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • wdStory wird nicht erkannt

    Hallo,<P>ich arbeite mit Word und gebe ohne Verweis von Word erst einmal den Objectbezug so vor:<PRE>
    Dim _owdApp As Object 'Word.Application
    Dim _wdDocs As Object 'Word.Documents
    Dim _wdDoc As Object 'Word.Document
    Dim _wdRange As Object 'Word.Range
    Dim _bookm As Object 'Word.Bookmark
    Dim _bookms As Object 'Word.Bookmarks</PRE>Vieles funktioniert wunderbar, dann springe ich ua. eine Textmarke an und möchte<P> bis zum Ende selektieren und löschen. In der Hilfe von VB steht: <PRE>
    ThisApplication.Selection.EndKey( _
    Unit:=Word.WdUnits.wdStory, Extend:=Word.WdMovementType.wdExtend)
    Word.Selection.Delete(Unit:=Word.WdUnits.wdCharact er, Count:=1)</PRE> Das habe ich nun versucht abzuwandeln, aber bekomme es irgend wie nicht hin.Das sieht dann so aus<PRE> _owdApp.Selection.EndKey(Unit:=_owdApp.wdStory, Extend:=_owdApp.WdMovementType.wdExtend)
    _owdApp.Selection.Delete(Unit:=_owdApp.WdUnits.wdC haracter, Count:=1)</PRE>Leider kommen immer wieder Fehlermeldungen. Wie muss es sonst heißen?

  • #2
    Hallo,

    ich kann das Problem nicht nachvollziehen: <br>
    a) Office XP <br>
    b) Office XP-PIAs von Microsoft installiert (siehe <i>http://www.microsoft.com/downloads/details.aspx?familyid=c41bd61e-3060-4f71-a6b4-01feba508e52&displaylang=en</i> <br>
    c) Als Verweis <i>Microsoft Word 10.0 Object Library</i> einbinden, VS.NET ersetzt dies automatisch durch die PIA (Primary Interop Assembly). <br>
    d) DOT-Vorlage »Test.dot« mit der Textmarke »TM«

    Die Textmarke wird angesprungen und nach der 1. MessageBox wird der nachfolgende Text bis zum Ende gelöscht:
    <pre>
    Imports Microsoft.Office.Interop
    <br><br>
    Dim aWordApp As Word.Application
    Dim aDocs As Word.Documents
    Dim aDoc As Word.Document
    aWordApp = New Word.Application
    aWordApp.Visible = True
    aDocs = aWordApp.Documents
    aDoc = aDocs.Add("C:\Temp\Out\VSNET2003\WordAutomationBoo kmark\Test.dot")
    aDoc.Bookmarks("TM").Range.Select()
    MessageBox.Show("Vor dem Löschen")
    '
    aWordApp.Selection.EndKeyUnit:=Word.WdUnits.wdStor y, Extend:=Word.WdMovementType.wdExtend)
    aWordApp.Selection.Delete(Unit:=Word.WdUnits.wdCha racter, Count:=1)
    '
    MessageBox.Show("Nach dem Löschen")
    aDoc.Close(False)
    aWordApp.Quit(False)
    ' Aufräumen (der faule Weg mit dem Holzhammer)
    GC.Collect()
    GC.WaitForPendingFinalizers()
    GC.Collect()
    GC.WaitForPendingFinalizers()
    </pre&gt

    Comment


    • #3
      Hallo Herr Kosch,<P><P>

      danke für die interessante Antwort. Leider funktioniert das mit der Interop unter Office 2000 nicht so richtig. Ich habe das runtergeladen aus dem Link, den Sie angegeben habe, aber irgend wie geht das trotzdem nicht. Muss ich da die Interop XP für Word und die 9.0 Word in den Verweis laden, damit es funktioniert?

      Bei meinem Beispiel oben, habe ich überhaupt keine Verweise eingetragen und trotzdem funktioniert das alles, außer das _owdApp.wdStory.

      Gruß

      Fran

      Comment


      • #4
        Hallo,

        Microsoft stellt nur für Office XP und Office 2003 speziell angepasste COM Interop-Assemblies (die sogenannten Primary Interop Assemblies) zur Verfügung. Für Office 2000 muss die Interop-Assembly selbst angelegt werden.
        <br>
        &gt;außer das _owdApp.wdStory.
        <br>
        Da ich "nur" Office XP inklusive PIA auf dem Rechner habe, kann ich den Office 2000-Fall nicht nachbauen

        Comment

        Working...
        X