Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Find occurence information on a word in a doc file using Win32::OLE

by Generoso (Parson)
on Jun 08, 2011 at 15:32 UTC ( #908724=note: print w/ replies, xml ) Need Help??


in reply to Find occurence information on a word in a doc file using Win32::OLE

Do you know how to do what your trying to do in word without Perl?
Recommend you find this first and then do it with win32::ole in Perl


Comment on Re: Find occurence information on a word in a doc file using Win32::OLE
Re^2: Find occurence information on a word in a doc file using Win32::OLE
by Generoso (Parson) on Jun 08, 2011 at 18:16 UTC

    Maybe this macro will help.

    Sub Test() Dim i As Long Dim myInfo As String Dim myRange As Range Dim rgeSave As Range Set rgeSave = Selection.Range Application.ScreenUpdating = False 'Loop: Do a Search, Then Execute Some Other Commands Inside 'a "Do Until End of Document" Loop (version 2, thanks to Shawn Wilson) +: Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "13" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Do While Selection.Find.Execute 'Do something within the found text myInfo = myInfo & Selection.Information(wdFirstCharacterLineNumber) + & " " & Selection.Information(wdActiveEndAdjustedPageNumber) & " " Loop MsgBox myInfo Application.ScreenRefresh Application.ScreenUpdating = True rgeSave.Select End Sub

      @Generoso, thank you for the macro snippet. Really appreciate it :)

      I never used macro until now. I replaced .Text = "13" with .Text = "perl" and ran the modified macro on the test.doc file and I got the desired information. Cool!

      But the problem I posted is only a smaller part of a larger problem. For example, in the real task, it's not just one single word (it's a list of words) and I also need to remove duplicate page numbers (e.g. if 'perl' occurs more than once in one page, it will count as just once).

      But I guess the macro probably can also do that too although the coding might involve a different complexity level compared with a Perl solution. I'll probably need to dig deeper.

      Anyway it's good to know the macro solution. Thank you again

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://908724]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (8)
As of 2015-07-04 19:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls