none
Word-Automatisierung: Abschnitt Kopieren mit Formatierung RRS feed

  • Frage

  • Hallo zusammen,

    ich möchte gewisse Abschnitte aus einem Word-Dokument vollständig in eine anderes Word-Dokument übertragen. Ich erzeuge dazu im Quell-Dokument ein Range-Objekt und rufe darauf die Methode .Copy() auf. Im Ziel-Dokument füge ich den kopierten Inhalt nun per ActiveWindow.Selection.Range.PasteAndFormat(WdRecoveryType.wdFormatOriginalFormatting) wieder ein.

    Das klappt soweit schon einmal! Mein Problem ist aber, dass er die Nummerierung aus diesem Abschnitt nicht mit rüber zieht, sondern die Nummerierung wieder neu beginnt. Wie kann ich denn diese Nummerierung ebenso mit übertragen bzw. wie könnte ich die aus dem Original-Range restaurieren?

    Freitag, 23. September 2011 08:06

Antworten

Alle Antworten

  • Hallo SP.,

    ja, by Design bei Abschnitten, insofern setzt man dass "manuell" ja dann zum Beispiel über das SmartTag "Nummerierung fortsetzen" um.

    [Nummerierungen im Word-Text fortführen » officewissen.net]
    http://officewissen.net/nummerierungen-im-word-text-fortfuhren/

    http://office.microsoft.com/de-de/word-help/andern-des-layouts-oder-der-formatierung-in-einem-abschnitt-des-dokuments-HP001226502.aspx

    "Programmatisch" etwas wie:

    [Restart numbered lists - Word clinic]
    http://www.syntagma.demon.co.uk/FAQs/ListRestartMethods.htm
    (Man kann sich u.a. am VBA entsprechende Dinge gut abschauen)

     


    ciao Frank
    • Als Antwort markiert SPDeveloperXP Dienstag, 27. September 2011 15:04
    Freitag, 23. September 2011 09:53
  • Hallo SP,

    hast Du Dein Problem geloest? Vielen Dank

    VG / Bogdan


    Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.
    Montag, 26. September 2011 09:14
    Moderator
  • Hallo Frank,

    danke für die Links. Ich habe jetzt zwar herausgefunden, wie man Listennummerierungen bei neuen Elementen setzen kann, aber so ganz klar ist mir noch nicht, wie das bei Copy & Paste Aktionen richtig gemacht wird. Am liebsten wäre es mir, wenn man da zuvor die initiale Kapitelnummerierung setzen könnte, z.B. 3.2.1 und dann das Paste machen und alle nachfolgenden Abschnitte werden dann so richtig weiter durchnummeriert. Das ist mir allerdings noch nicht gelungen.

    level = word.ListGalleries[WordIO.WdListGalleryType.wdNumberGallery].ListTemplates.get_Item(ref listElement).ListLevels[3];
    level.NumberFormat = "%1.%2.%3.";
    level.TrailingCharacter = WordIO.WdTrailingCharacter.wdTrailingTab;
    level.NumberStyle = WordIO.WdListNumberStyle.wdListNumberStyleArabic;
    level.NumberPosition = 1.27f;
    level.Alignment = WordIO.WdListLevelAlignment.wdListLevelAlignLeft;
    level.TextPosition = 2.16f;
    level.TabPosition = 2.16f;
    level.ResetOnHigherOld = true;
    level.StartAt = 3;
    level.LinkedStyle = "";
    object bValue = true;
    object oApplyTo = WordIO.WdListApplyTo.wdListApplyToWholeList;
    object lstBehavior = WordIO.WdDefaultListBehavior.wdWord10ListBehavior;
    word.Selection.Range.ListFormat.ApplyListTemplate(word.ListGalleries[WordIO.WdListGalleryType.wdNumberGallery].ListTemplates.get_Item(ref listElement), ref bValue, ref oApplyTo, ref lstBehavior);
    


    Bei mir passiert aber nach dem PasteAndFormat-Aufruf folgendes, der kopierte Text wird einfach so eingefügt und ich müsste mich im Nachhinein wieder zu den einzelnen nummerierten Überschriften durchhangeln, diese selektieren und darauf dann ApplyListTemplate aufzurufen.

    Das erscheint mir aber sehr komisch und umständlich. Zusätzlich bräuchte ich ja dann zumindest eine Auflistung von Elementen, die eine Nummerierung enthalten, um dann diese durchzuiterieren. Aktuell sehe ich nur den Weg alle Paragraph-Elemente durchzulaufen...

    Also das ganze scheint mir doch komplizierter zu sein, als ich bislang angenommen habe...


    Montag, 26. September 2011 11:32
  • Leider noch nicht ganz. Die Links von Frank haben mir schon mal geholfen, um annährend ein Gefühl dafür zu entwickeln, wie das überhaupt zu funktionieren hat. Aber leider konnte ich es noch nicht zum erfolgreichen Abschluss bringen.

    Wie bei der Antwort auf Franks Posting geschildert, kommt mir das, so wie ich das aktuell vor habe, auch etwas kompliziert vor. Vielleicht nehme ich da auch den verkehrten und umständlichsten Weg!?!?

    Montag, 26. September 2011 11:35
  • Hallo Frank,

    ergänzend zu Deinen Links wäre der folgende noch interessant:

    http://stackoverflow.com/questions/1939995/numbered-list-in-microsoft-word

    • Als Antwort markiert SPDeveloperXP Dienstag, 27. September 2011 15:04
    Dienstag, 27. September 2011 15:04