Hello,
I am working on something similar -
I've only gone to level 3 Heading, and still have a bit to do with building the rest of the clause number. This might help you get started. (I haven't included the full code below, but hopefully will give you a start).
Do While i <= ActiveDocument.Paragraphs.Count
Set para = ActiveDocument.Paragraphs(i)
Select Case (para.Style)
Case "Heading 1": ' this is the major heading
iHeading1 = iHeading1 + 1
sHeading1 = para.Range
If iHeading1 < 1 Then
sClauseH1 = ""
Else: sClauseH1 = Format(iHeading1, Text) & "."
End If
'Reset Heading 2 and 3
iHeading2 = 0
sHeading2 = ""
iHeading3 = 0
sHeading3 = ""
Case "Heading 2": ' this is the level 2 heading
iHeading2 = iHeading2 + 1
sHeading2 = para.Range
If iHeading2 < 1 Then
sClauseH2 = ""
Else: sClauseH2 = Format(iHeading2, Text) & "."
End If
'Reset Heading 3
iHeading3 = 0
sHeading3 = ""
Case "Heading 3" ' this is the level 3 heading
iHeading3 = iHeading3 + 1
sHeading3 = para.Range
If iHeading3 < 1 Then
sClauseH3 = ""
Else: sClauseH3 = Format(iHeading2, Text) & "."
End If
Case "Normal":
' we want to copy the text (and paste all our variables in the excel spreadsheet)
sString = para.Range
Dim rng As Range
Dim strnum As String
ActiveDocument.ConvertNumbersToText
Set rng = Selection.Paragraphs(1).Range
sClause = sClauseH1 & sClauseH2 & sClauseH3 & Left(sString, InStr(sString, vbTab))
ActiveDocument.Undo
|