Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

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

by Generoso (Vicar)
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 (Vicar) 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 taking refuge in the Monastery: (13)
As of 2014-08-28 15:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (263 votes), past polls