Sortowanie przy użyciu makra dla dokumentów programu Microsoft Word

Makra można użyć do sortowania, gdy właściwość, która ma zostać użyta, jest niedostępna w oknie sortowania.

Zanim rozpoczniesz

Uwaga: Ten temat ma zastosowanie wyłącznie do szablonów generowanych w dokumentach programu Microsoft Word.

O tym zadaniu

Zalety sortowania przy użyciu makra:

Procedura

  1. Dodaj etykietę makra w kolumnach do posortowania:
    1. Otwórz szablon w aplikacji Document Studio.
    2. W komórce nagłówka kolumny do posortowania dodaj element Komentarz Ikona elementu Komentarz.
    3. Kliknij dwukrotnie element Komentarz i wprowadź wartość <RPE_SORT>.
    4. Powtórz tę czynność dla każdej tabeli w szablonie do zaktualizowania.
  2. Utwórz makro:
    1. Otwórz program Microsoft Word.
    2. Skopiuj i wklej następujący skrypt do pliku:
      ' Makro: sortowanie tabel
      ' Makro jest dostarczane w stanie, w jakim się znajduje, bez żadnego, domniemanego lub wyraźnego, wsparcia ze strony firmy IBM.
      Sub sortTables()
      
          Dim tbl As Table
      
          ' Sortowanie poszczególnych tabel
          For Each tbl In ActiveDocument.Tables
      
              ' Określanie, czy tabela ma nagłówek
              Dim hasheader As Boolean
              hasheader = False
              If tbl.Rows.First.HeadingFormat = True Then
                  hasheader = True
              End If
      
              ' Pobieranie kolumny do posortowania. Kolumna jest identyfikowana za pomocą łańcucha <RPE_SORT> w pierwszej komórce.
              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
      
                          ' Usunięcie komentarza z wiersza znajdującego się poniżej wiersza
                          ' Selection.Comments.Item(1).Delete
      
                          Exit For
                      End If
                  End If
              Next
      
              ' Sortowanie tabeli według znalezionej kolumny
              If pos > 0 Then
                  Dim fldnum As String
                  fldnum = "Kolumna " + CStr(pos)
                  Debug.Print "Sortowanie według: "; fldnum
      
                  tbl.Select
                  Selection.Sort ExcludeHeader:=hasheader, FieldNumber:=fldnum, SortFieldType:=wdSortFieldAlphanumeric, SortOrder:=wdSortOrderAscending
              End If
          Next
      End Sub
    3. Zapisz plik z rozszerzeniem .dot.
  3. Dodaj makro do specyfikacji dokumentu i wygeneruj dane wyjściowe:
    1. Otwórz specyfikację dokumentu, jeśli już istnieje, lub utwórz ją w aplikacji Launcher.
    2. Rozwiń pozycję Dane wyjściowe, kliknij prawym przyciskiem myszy opcję Cel: Word, a następnie wybierz opcję Konfiguruj dane wyjściowe.
    3. Dla opcji Arkusz stylów kliknij przycisk Przeglądaj, aby znaleźć utworzone makro .dot.
    4. W polu Makro wpisz nazwę makra.
    5. Wygeneruj dane wyjściowe.

Co dalej

Makro można zapisać i używać go ponownie w dowolnej specyfikacji dokumentu do sortowania danych.

Opinia