![]() |
|
#1
|
|||
|
|||
|
I am new for word macros. Can you anyone please suggest to me how to write a code in macros for the below solution.
I need to get the text contains special symbols("-") in between text in the word document macros. This is the table of content we are using in word, Each heading having serial number also Code:
1 test1 2 test2 3 - test3 - 4 test4 5 - test5 - 6 test6 7 - test7 - 8 test8 9 - test9 - 10 test10 11 test11 12 - test12 - 13 test13 14 - test14 - Code:
- test3 - - test5 - - test7 - - test9 - - test12 - - test14 - Code:
Public Function GetVariablesFirstLevel() As Collection
On Error GoTo ErrorHandler
Dim objVar As variable
Dim colAux As Collection
Dim strAux As String
Dim objStoryRange As Range
Dim forceExitLoop As Boolean
Set colAux = New Collection
For Each objStoryRange In ActiveDocument.StoryRanges
objStoryRange.Select
Selection.Collapse wdCollapseStart
With Selection
With .Find
.ClearFormatting
.Text = "-"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
forceExitLoop = False
Do While (.Find.Execute And Not forceExitLoop)
strAux = Trim$(Replace$(Right(.Text, 1), vbCr, vbNullString))
If (strAux <> vbNullString) Then
If (Not IsReplacementOfAVariable(strAux)) Then
colAux.Add strAux, UCase$(strAux)
End If
Else
forceExitLoop = True
End If
Loop
End With
Next
Set GetVariablesFirstLevel = colAux
Set colAux = Nothing
Set objStoryRange = Nothing
Exit Function
End Function
|
|
#2
|
||||
|
||||
|
How about
Code:
Public Function GetVariablesFirstLevel() As Collection
Dim objVar As Variable
Dim colAux As Collection
Dim strAux As String
Dim objStoryRange As Range
Dim i As Integer
Set colAux = New Collection
For Each objStoryRange In ActiveDocument.StoryRanges
With objStoryRange.Find
.ClearFormatting
Do While .Execute(findText:="- * -", MatchWildcards:=True)
'strAux = Trim(Replace(objStoryRange.Text, "-", ""))
strAux = objStoryRange.Text
colAux.Add strAux, UCase$(strAux)
objStoryRange.Collapse 0
Loop
End With
Next objStoryRange
'For i = 1 To colAux.Count
'Debug.Print colAux(i)
' Next i
GetVariablesFirstLevel = colAux
Set colAux = Nothing
Set objStoryRange = Nothing
Exit Function
End Function
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
| Tags |
| vba, word macro |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Find/replace - symbol for all numbers or symbol letters (Word 97) | Genericname1111 | Word | 10 | 11-10-2019 10:37 PM |
Foot symbol/inches symbol
|
Mr. P | Word | 1 | 09-05-2016 11:55 AM |
Make my own image and save as symbol in the symbol chart
|
DeniseN | Office | 1 | 03-20-2015 01:13 AM |
how to find and replace a symbol with another symbol
|
wondermuse | Word | 5 | 10-09-2014 06:30 AM |
| How to enter names in Resource Pool/names | pstein | Project | 1 | 03-26-2012 07:37 AM |