Thema Datum  Von Nutzer Rating
Antwort
19.12.2023 11:46:06 Lina
NotSolved
Blau Makro für Abbildungsverzeichnis
19.12.2023 12:41:49 Gast46424
Solved

Ansicht des Beitrags:
Von:
Gast46424
Datum:
19.12.2023 12:41:49
Views:
389
Rating: Antwort:
 Nein
Thema:
Makro für Abbildungsverzeichnis

FirstIndex bezieht sich auf den Text (Input), der bei Execute übergeben wurde. Da der Input immer weiter verkürzt dem Execute übergeben wird (per Mid()), hat der FirstIndex keinen Bezug mehr zum eigentlichen Text im Dokument und das Verhalten wird "seltsam".


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'in einem Modul
Option Explicit
 
Private Type UFigure
  Range As Word.Range
  Id As Long
  Description As String
End Type
 
Public Sub AbbVerzeichnis()
   
  Dim udtFigures() As UFigure
  Dim abbildungsverzeichnis As String
  Dim i As Long
   
  For i = 1 To GetListOfFigures(ActiveDocument.Content, udtFigures)
    abbildungsverzeichnis = abbildungsverzeichnis & "Abbildung " & udtFigures(i).Id & ": " & udtFigures(i).Description & vbNewLine
  Next
   
  MsgBox abbildungsverzeichnis
   
End Sub
 
Private Function GetListOfFigures(Range As Word.Range, ByRef Figures() As UFigure) As Long
   
  Dim matches As Object
  With CreateObject("VBScript.RegExp")
     
    .Global = True
    .MultiLine = True
    .IgnoreCase = True
     
    .Pattern = "Abb\. (\d+): ([^\r\n]+)"
    Set matches = .Execute(Range.Text)
     
  End With
   
  If matches.Count = 0 Then
'    GetListOfFigures = 0
    Exit Function
  End If
   
  Dim match As Object
  Dim i As Long
   
  ReDim Figures(1 To matches.Count)
   
  For i = 1 To matches.Count
    Set match = matches(i - 1)
    With Figures(i)
      Set .Range = Range.Document.Range(match.FirstIndex, match.FirstIndex + match.Length)
      .Id = CLng(match.SubMatches(0))
      .Description = match.SubMatches(1)
    End With
  Next
   
  GetListOfFigures = matches.Count
   
End Function

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.12.2023 11:46:06 Lina
NotSolved
Blau Makro für Abbildungsverzeichnis
19.12.2023 12:41:49 Gast46424
Solved