Announcement

Collapse
No announcement yet.

In Word Dokument Text mit Nummerierung einfügen

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

  • In Word Dokument Text mit Nummerierung einfügen

    Hallo Zusammen,
    Ich mache zur Zeit meine ersten Schritte in der Programmierung mit PIA COM-Schnittstellen zu Office.

    Speziell möchte ich Text in ein Word Dokument einfügen, dazu soll aber im Dokument jedes mal eine automatische Nummerierung/Aufzählung des eingefügten erfolgen(wie es so word gewohnt ist).
    Leider habe ich bis jetzt nichts dazu gefunden, es gibt auch sehr wenig Beschreibung zu den Schnittstellen.

  • #2
    Hallo,
    generell ist es bei derartigen Problemen immer eine gute Idee, in Word ein Makro aufzuzeichnen und dann dort nachzusehen, über welche VBA-Anweisungen die Aufgabe hinter den Kulissen umgesetzt wurde. Im eigenen Programm muss man dann "nur" noch die Vorgehensweise des Makros nachbauen. Ich werde am Wochenende ein Beispiel vorbereiten..

    Comment


    • #3
      Hallo Eugen,

      Imo sollte Word beim Installieren anbieten, die Hilfe für VBA zu installieren - evtl. mußt du sie nachinstallieren. Da ist sicher einiges zu finden. Außerdem könntest du auch im MSDN nachschauen http://msdn.microsoft.com/library/en-us/odc_2003_ta/html/odc_ancoffsol.asp.
      Mein Word Automation Testprojekt gibts unter:
      http://blog.happyarts.net

      Comment


      • #4
        Hallo Eugen,
        der Marko-Recorder von Word 2003 hat die folgende Anweisung aufgezeichnet:
        <code>
        ListGalleries(wdNumberGallery).ListTemplates(1).Na me = ""
        Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
        wdNumberGallery).ListTemplates(1), ContinuePreviousList:=False, ApplyTo:= _
        wdListApplyToWholeList, DefaultListBehavior:=wdWord10ListBehavior
        </code>
        In VB.NET kann das (dank der einfachen späten Bindung über den „Option Strict Off-Trick“) wie folgt umgesetzt werden, indem kurzzeitig von der frühen Bindung (PIA) auf die späte Bindung umgeschaltet wird:
        <code>
        Private aWordApp As Word2003.Application
        ...
        aWordApp = New Word2003.ApplicationClass
        aWordApp.Visible = True
        Dim aWordDocCol As Word2003.Documents
        Dim aWordDoc As Word2003.Document
        aWordDocCol = aWordApp.Documents
        aWordDoc = aWordDocCol.Add(sDOT)
        Dim aLBDoc As Object = aWordDoc
        Dim aLBApp As Object = aWordApp
        aLBDoc.Bookmarks("TMDATUM").Range.ListFormat.Apply ListTemplate( _
        ListTemplate:=aLBApp.ListGalleries(2).ListTemplate s(1))
        Dim sText As String = "Testeintrag 1" + Environment.NewLine + "Testeintrag 2"
        aLBDoc.Bookmarks("TMDATUM").Range.Text = sText
        </code>
        Der ListGalleries-Wert 2 entspricht dabei der VBA-Konstante <i>wdNumberGallery</i>

        Comment

        Working...
        X