vba in outlook 2007

  • Thread starter Thread starter mahesh
  • Start date Start date
M

mahesh

Dear Gurus,

Im getting the following error when i run my vba macro in outlook 2007.
Earlier this macro was successfully running in outlook 2003. I've just
migrated from outlook 2003 to outlook 2007

The error message :
Compile error:
User-defined type not defined

at the following line:
Dim oStory As Range

Pls advice, Thanks..
Mahesh
 
The Outlook oject model doesn't know a Range object.

It's always a good idea to use the full object name, for instance
Word.Range, or Excel.Range.

So, check the code and see what library the Range object belongs to, then
add a ref on it via Tools/References.

--
Best regards
Michael Bauer - MVP Outlook
Manage and share your categories:
<http://www.vboffice.net/product.html?pub=6&lang=en>


Am Fri, 8 Jan 2010 00:06:01 -0800 schrieb mahesh:
 
Hi Michael,

I proceeded to include the Tools/Reference for Word,Excel,VBA etc...


I now get the following error when i execute the macro in Office 2007:

Run-time error '429':
ActiveX component can't create object

I then click Debug at the Msgbox


Further, when i put the cursor on the following line:
For Each rngStory In ActiveDocument.StoryRanges

it displays this tooltip error that reads:

ActiveDocument.StoryRanges=<Object Variable or With Block variable not set>


Following is the code im trying to execute:

Sub a2()
Dim rngStory As Word.Range
For Each rngStory In ActiveDocument.StoryRanges
With rngStory.Find
.Text = "find text"
.Replacement.Text = "I'm found"
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
Next rngStory
End Sub


Am i btw missing any other references.
Thanks,
Mahesh
 
Sorry, THere was a typo in the above...


ITs NOT word.range

Its just Range
Sub a2()
Dim rngStory As Range
For Each rngStory In ActiveDocument.StoryRanges
With rngStory.Find
.Text = "find text"
.Replacement.Text = "I'm found"
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
Next rngStory
End Sub



Does outlook 2007 recognize Range command?


Thanks..
 
With the ActiveDocument object it becomes clear that it's Word not Excel.

You get the error because ActiveDocument is nothing. Create a variable for
it, and if the code is for an opened email, set the variable to
Application.ActiveInspector.WordEditor, which returns a Word.Document
object.

--
Best regards
Michael Bauer - MVP Outlook
Manage and share your categories:
<http://www.vboffice.net/product.html?pub=6&lang=en>


Am Mon, 11 Jan 2010 21:52:01 -0800 schrieb mahesh:
 
Thank you. Will try it out.

Michael Bauer said:
With the ActiveDocument object it becomes clear that it's Word not Excel.

You get the error because ActiveDocument is nothing. Create a variable for
it, and if the code is for an opened email, set the variable to
Application.ActiveInspector.WordEditor, which returns a Word.Document
object.

--
Best regards
Michael Bauer - MVP Outlook
Manage and share your categories:
<http://www.vboffice.net/product.html?pub=6&lang=en>


Am Mon, 11 Jan 2010 21:52:01 -0800 schrieb mahesh:

.
 
Back
Top