Announcement

Collapse
No announcement yet.

Word-Automation: Close zerschießt das Dokument?

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

  • Word-Automation: Close zerschießt das Dokument?

    Hallo zusammen,

    ich versuche mich gerade an einer kleinen automation meines Dokuments. (Word 2007)
    Mit folgendem Code möchte ich ein alle Felder in einem Dokument aktualisieren und speichern.

    [highlight=c#]
    /// <summary>
    /// Aktualisiert alle Felder im übergebenen Dokument
    /// </summary>
    /// <param name="varFileName">Der Pfad und Dateiname des Dokuments</param>
    private void AlleFelderUpdaten(object varFileName)
    {
    object varFalseValue = false;
    object varTrueValue = true;
    object varMissing = Type.Missing;
    object varDoNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNo tSaveChanges;
    object varOrginalFormat = Microsoft.Office.Interop.Word.WdOriginalFormat.wdW ordDocument;

    //Eine Referenz zu Word erstellen.
    Microsoft.Office.Interop.Word.Application varWord =
    new Microsoft.Office.Interop.Word.Application();
    //Eine Refernez zum Dokument erstellen.
    Microsoft.Office.Interop.Word.Document varDoc =
    varWord.Documents.Open(ref varFileName, ref varMissing,
    ref varFalseValue,
    ref varMissing, ref varMissing, ref varMissing, ref varMissing,
    ref varMissing, ref varMissing, ref varMissing,
    ref varMissing, ref varMissing, ref varMissing, ref varMissing,
    ref varMissing, ref varMissing);
    //Das Dokument aktivieren.
    varDoc.Activate();

    foreach (Microsoft.Office.Interop.Word.Range oStory in varDoc.StoryRanges)
    {
    foreach (Microsoft.Office.Interop.Word.Field oField in oStory.Fields)
    {
    oField.Update();
    }
    }
    //Das Dokument speichern und schließen.
    varDoc.Save();
    //Der Compiler warnt hier, dass die Methode Close leicht mit dem Ereignis Close verwechselt werden kann. Da die Warnung für Elemente der Office-API ausgegeben wurde und nicht für den übrigen Code, kann diese Warnung ignoriert werden.
    varDoc.Close(ref varDoNotSaveChanges, ref varOrginalFormat, ref varMissing);
    }
    [/highlight]

    Ich habe zur besseren Erklärung 2 Bilder von meinem Inhaltsverzeichnis meines Dokuments angehängt.
    Bild 1 zeigt das Ergebnis OHNE das Close
    Bild 2 zeigt das Ergebnis MIT Close.

    Wie man deutlich sieht, wird das Inhaltsverzeichnis von dem Close "zerissen". ich benötige aber das Close, da ich mit dem Dokument noch weiter arbeiten muss, dies aber ohne Close nicht kann, da es dann gesperrt ist (wird von einem anderen Prozess verwendet...)

    Weiß hier jemand was ich anders machen muss, damit das ganze funktioniert?

    Danke schonmal
    Andi
    Attached Files

  • #2
    Hat sich erledigt. Es hat sich herausgestellt, das die Formatvorlagen allesamt einen Schuss haben wodurch dieses Problem ausgelöst wird.

    Comment

    Working...
    X