Email filter

D

D Wood

I have a 50 page word doc converted from pdf that has 1 email address per
page. Is it possible to filter/capture only email addresses at once instead
of copying and pasting from each page?
 
J

Jay Freedman

I have a 50 page word doc converted from pdf that has 1 email address per
page. Is it possible to filter/capture only email addresses at once instead
of copying and pasting from each page?

Yes, it's possible, by using a wildcard search in a macro. Wildcards
are explained in http://www.gmayor.com/replace_using_wildcards.htm.

The following macro will find the email addresses (that is, any
sequence of letters, numbers, and periods on both sides of an @
symbol) and copy them into a new document, one per paragraph. See
http://www.gmayor.com/installing_macro.htm if needed.

Sub CollectEmailAddresses()
Dim srcDoc As Document, dstDoc As Document
Dim oRg As Range

Set srcDoc = ActiveDocument
Set dstDoc = Documents.Add
Set oRg = srcDoc.Range

With oRg.Find
.MatchWildcards = True
.Text = "[A-Za-z0-9.]{1,}\@[A-Za-z0-9.]{1,}"
.Wrap = wdFindStop
While .Execute
dstDoc.Range.InsertAfter oRg.Text & vbCr
Wend
End With
End Sub
 
D

Doug Robbins - Word MVP

Macro to extract all of the email addresses from a document

Sub CopyAddressesToOtherDoc()
Dim Source As Document, Target As Document, myRange As Range
Set Source = ActiveDocument
Set Target = Documents.Add
Application.ScreenUpdating = False
Source.Activate
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
Do While .Execute(findText:="[+0-9A-z._-]{1,}\@[A-z.]{1,}", _
MatchWildcards:=True, Wrap:=wdFindStop, Forward:=True) = True
Set myRange = Selection.Range
Target.Range.InsertAfter myRange & vbCr
Loop
End With
Selection.HomeKey Unit:=wdStory
Target.Activate
End Sub


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top