Daten mit einem Makro für Microsoft-Word-Dokumente sortieren

Sie können ein Makro für die Sortierung verwenden, wenn die gewünschte Eigenschaft im Fenster "Sortieren" nicht verfügbar ist.

Vorbereitende Schritte

Anmerkung: Dieser Artikel befasst sich nur mit Vorlagen, die in Microsoft-Word-Dokumenten generiert werden.

Informationen zu diesem Vorgang

Die Vorteile der Verwendung eines Makros zur Sortierung sind folgende:

Vorgehensweise

  1. Fügen Sie in den zu sortierenden Spalten eine Makrobezeichnung hinzu:
    1. Öffnen Sie die Vorlage in der Anwendung "Document Studio".
    2. Fügen Sie in der Kopfzeilenzelle der zu sortierenden Spalte ein Kommentarelement Symbol 'Kommentar' hinzu.
    3. Klicken Sie doppelt auf das Kommentarelement, und geben Sie <RPE_SORT> ein.
    4. Wiederholen Sie den Vorgang für jede Tabelle in der zu aktualisierenden Vorlage.
  2. Gehen Sie wie folgt vor, um das Makro zu erstellen:
    1. Öffnen Sie Microsoft Word.
    2. Kopieren Sie das folgende Script, und fügen Sie es in die Datei ein:
      ' Macro: sort tables
      ' This macro is provided as is with no implicit or explicit support from IBM.
      Sub sortTables()
      
          Dim tbl As Table
      
          ' sort each table
          For Each tbl In ActiveDocument.Tables
      
              ' determine if the table has header
              Dim hasheader As Boolean
              hasheader = False
              If tbl.Rows.First.HeadingFormat = True Then
                  hasheader = True
              End If
      
              ' get the column to do the sorting on. The column is identified by a comment with the "<RPE_SORT>" content in its first cell
              Dim hcell As Cell
              Dim index As Integer
              pos = 0
              For Each hcell In tbl.Rows.First.Cells
      
                  hcell.Select
                  If Selection.Comments.Count > 0 Then
                      If Selection.Comments.Item(1).Range.Text = "<RPE_SORT>" Then
                          pos = hcell.ColumnIndex
      
                          ' Delete the comment - remove comment from the line below
                          ' Selection.Comments.Item(1).Delete
      
                          Exit For
                      End If
                  End If
              Next
      
              ' sorts the table using the found column
              If pos > 0 Then
                  Dim fldnum As String
                  fldnum = "Column " + CStr(pos)
                  Debug.Print "Sorting on: "; fldnum
      
                  tbl.Select
                  Selection.Sort ExcludeHeader:=hasheader, FieldNumber:=fldnum, SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending
              End If
          Next
      End Sub
    3. Speichern Sie die Datei mit der Erweiterung .dot.
  3. Fügen Sie das Makro zur Dokumentspezifikation hinzu, und generieren Sie die Ausgabe:
    1. Öffnen Sie, wenn bereits vorhanden, die Dokumentspezifikation, oder erstellen Sie eine in der Anwendung "Launcher".
    2. Blenden Sie den Eintrag Output ein, und klicken Sie mit der rechten Maustaste auf Target: Word. Wählen Sie dann Ausgabe konfigurieren aus.
    3. Klicken Sie für Stylesheet (Formatvorlage) auf Durchsuchen, um das Makro .dot, das Sie erstellt haben, zu lokalisieren.
    4. Geben Sie für Macro den Namen des Makros ein.
    5. Generieren Sie die Ausgabe.

Nächste Schritte

Speichern Sie das Makro, und verwenden Sie es in jeder beliebigen Dokumentspezifikation, um Daten zu sortieren.

Feedback