View Single Post
  #4   Report Post  
Posted to microsoft.public.word.docmanagement
macropod[_2_] macropod[_2_] is offline
external usenet poster
 
Posts: 2,059
Default Find & Replace All - Subscripts

Hi briggs1055,

The following macro will search the active document for all numbers preceded by a letter or a right bracket, and subscript just the
numbers. Unless you're working with isotopes, the results should be correct - you'll need to apply the isotope superscripting
yourself (if the numbers are already superscripted, theyll be left alone).

If your document has other alphanumeric strings in which a non-superscripted number follows a letter (eg Table cell references),
youll need to select only the range(s) containing the text to be converted and answer €˜No to the prompt.

Sub ChemicalFormatter()
Dim oRng As Range, fRng As Range, bState As Boolean
Application.ScreenUpdating = False
Select Case MsgBox("Do you want to process the whole document?", _
vbYesNoCancel + vbQuestion, "Chemical Formatter")
Case vbYes
bState = True
Case vbNo
bState = False
Case vbCancel
End
End Select
With Selection
Set oRng = .Range
With .Find
.ClearFormatting
.Text = "[A-Za-z)][0-9]{1,}"
.MatchWildcards = True
.Wrap = wdFindContinue
.Forward = True
Do While .Execute = True
Set fRng = ActiveDocument.Range(Start:=Selection.Start + 1, End:=Selection.End)
If bState = False Then
If fRng.Start = oRng.End Then Exit Do
If fRng.End = oRng.End Then fRng.End = oRng.End
End If
If fRng.Font.Superscript = False Then fRng.Font.Subscript = True
fRng.Collapse Direction:=wdCollapseEnd
Loop
End With
End With
oRng.Select
Set fRng = Nothing
Set oRng = Nothing
Application.ScreenUpdating = True
End Sub


--
Cheers
macropod
[Microsoft MVP - Word]


"briggs1055" wrote in message ...
Hi

Query regarding Word 2003:

I have a number of documents to format, required to change all AAl2O3 to
have the 2 & 3 as subscript to show as chemical formula for the mineral.

I've set up autocorrect within my templates, so it does it when I type....
however working for a large corporation I'm unable to change the normal.dot
template, therefore get the document back to re-format!

I've tried to find & replace the word however within the advance options you
can only select the whole word to be subscript not individual characters....

Any help would be brilliant as I have a fair few large docs to do!

Thanks