Automating Word - Error on Users Machine, Can't Duplicate On Mine

I am developing an application that creates (from scratch) a Word document.  I'm developing using VB.Net 2010 (Pro).  I have on my machine MS Office 2010, the user has Office 2003, so I'm using late binding.

Here is the block of code that's failing
    Dim shp As Object = oTable.Cell(1, 1).Range.InlineShapes.AddPicture(sBMPFile)
    With shp
        writeLog("Adjust Image Size", "clsReport", "writePage05")
        .LockAspectRatio = 1
        Dim fOldWidth As Single = .Width
        writeLog("Adjust Image Width", "clsReport", "writePage05")
        .Width = m_oWord.InchesToPoints(4)
        If .Height > m_oWord.InchesToPoints(4.5) Then
            writeLog("Adjust Image Height", "clsReport", "writePage05")
            .Height = m_oWord.InchesToPoints(4.5)
        End If
    End With

Open in new window


Specifically, I have localized the error to occur at the "LockAspectRatio" line, or the line after.

The error that's thrown is this:
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentException: The specified value is out of range.
   at Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateSet(Object o, Type& objType, String name, Object[] args, String[] paramnames, Boolean OptimisticSet, CallType UseCallType)
   at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean OptimisticSet, Boolean RValueBase, CallType CallType)
   at STR_Tower_Mapping_Report_Maker.clsReport.writePage_05()

Yada, yada, yada

Open in new window


I'm fairly certain the issue is the fact that the "LockAspectRatio" value should be "msoTrue", but since I'm late binding I'm merely guessing at the actual numeric value.

Any ideas?
LVL 10
ClifAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Patrick TallaricoDecision Support and Systems AnalystCommented:
My suspicion is that it may be calling this from a vba library that your users may not have loaded.  Open the VBA console, and go to 'Tools' -> 'References' and check to make sure that the libraries you have on your machine are checked for your users.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Jacques Bourgeois (James Burger)PresidentCommented:
If the error is on line 5, remove it, you do not use that variable anywhere in your code.

You might want to provide the use with Word 2003 with a Debug version of the application. You would get more information out of the error report.

However, as it is, it gives a clue. Look at the last line, this is typically the line that triggered the error:

at STR_Tower_Mapping_Report_Maker.clsReport.writePage_05()

What is that STR_Tower_Mapping_Report_Maker?
0
GrahamSkanRetiredCommented:
The constant msoCTrue has a value of 1. msoTrue is -1, so that is the value to use

msoCTrue produces the error on my 2003 version.
0
ClifAuthor Commented:
Sorry it took so long to get back, but the user was out of the office for a few days, so they couldn't test it.

The change from 1 to -1 did the trick.

Thanks.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.