Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > Trying to use the GoTo method of the Word.Application ActiveX object in JavaScript

Reply
Thread Tools

Trying to use the GoTo method of the Word.Application ActiveX object in JavaScript

 
 
MayBoy
Guest
Posts: n/a
 
      12-11-2006

Hi There

I am trying to use the Goto method of the Word ActiveX object. I am
trying to open a document and go to a named bookmark. If I use this
code in VB it works, so I'm sure the approach is possible, I just can't
get JavaScript to work with it.

Here is the code I am using, the error I get from IE is Object
Expected:
Hope someone can help! Any help would be much appreciated

function PageLoad()
{
var WordApp = new ActiveXObject('Word.Application');
WordApp.Visible = true;
var documentlocation = crmForm.all.new_documentlocation.DataValue;
var wd = WordApp.Documents.Open(documentlocation);
wd.Select();
var Name = 'TestFred';
var wr = wd.Selection.GoTo(What : Word.WdGoToItem.wdGoToBookmark,Name :
'TestFred');
}

 
Reply With Quote
 
 
 
 
Julian Turner
Guest
Posts: n/a
 
      12-12-2006

MayBoy wrote:

> Hi There


Hi

> I am trying to use the Goto method of the Word ActiveX object. I am
> trying to open a document and go to a named bookmark. If I use this
> code in VB it works, so I'm sure the approach is possible, I just can't
> get JavaScript to work with it.
>
> Here is the code I am using, the error I get from IE is Object
> Expected:


It would help if you could identify which line, and which part of that
line, in your code is triggering this error.

> Hope someone can help! Any help would be much appreciated
>
> function PageLoad()
> {
> var WordApp = new ActiveXObject('Word.Application');
> WordApp.Visible = true;
> var documentlocation = crmForm.all.new_documentlocation.DataValue;
> var wd = WordApp.Documents.Open(documentlocation);


I am assuming for the sake of argument that you get this far.

> wd.Select();
> var Name = 'TestFred';


Why have you defined this variable but not used it?

> var wr = wd.Selection.GoTo(What : Word.WdGoToItem.wdGoToBookmark,Name :
> 'TestFred');


This is the line which has a number of possible errors in it.

Error 1
============

"wd" contains a reference to a Document object. The Selection object
is a member of the Application object, not a Document object. So this
should be "WordApp.Selection".

Alternatively, you can call Document.GoTo().

Document.GoTo() : "Returns a Range object that represents the start
position of the specified item, such as a page, bookmark, or field"
Application.Selection.GoTo(): "Moves the insertion point to the
character position immediately preceding the specified item, and
returns a Range object (except for the wdGoToGrammaticalError,
wdGoToProofreadingError, or wdGoToSpellingError constant)."

Errors 2 & 3
============

Firstly, JavaScript does not support NAMED arguments.

So this "GoTo(What : " is a syntax error.

Secondly, you must as a result supply the arguments in the order that
Word expects.

"expression.GoTo(What, Which, Count, Name)"

So you will need to supply default values for Which and Count.


Errors 4 & 5
============

"Word.WdGoToItem.wdGoToBookmark"

There are two errors here:

Firstly, you cannot access the constant wdGoToBookmark as a property of
WdGoToItem.

Secondly, apart from on the Server, you cannot access in JavaScript
Word constants, such as "wdGoToBookmark" by name.

You need to supply the constant value instead. The following is taken
from Word's ObjectBrowser facility in its Macro editor:-

"Const wdGoToBookmark = -1 (&HFFFFFFFF)"
"Const Const wdGoToFirst = 1"

Result
============

Try:-

var myRange = Document.GoTo(-1, 1, 1, 'TestFred');
or
WordApp.Selection.GoTo(-1, 1, 1, 'TestFred');

I have not tested these, so there may be something else to consider as
well. JavaScript does work, with a bit of fiddling.

Regards

Julian

 
Reply With Quote
 
 
 
 
MayBoy
Guest
Posts: n/a
 
      12-13-2006
Hi Julian

I tried your answer but still get an error, when you put any value in
for Which it says "You entered multiple destinations for a
page.line.footnoteendnote or comment"

I tried the same in VB and it works with a nothing as the Which and
Count parameters but I can't do that in javascript.

Any ideas?


Julian Turner wrote:
> MayBoy wrote:
>
> > Hi There

>
> Hi
>
> > I am trying to use the Goto method of the Word ActiveX object. I am
> > trying to open a document and go to a named bookmark. If I use this
> > code in VB it works, so I'm sure the approach is possible, I just can't
> > get JavaScript to work with it.
> >
> > Here is the code I am using, the error I get from IE is Object
> > Expected:

>
> It would help if you could identify which line, and which part of that
> line, in your code is triggering this error.
>
> > Hope someone can help! Any help would be much appreciated
> >
> > function PageLoad()
> > {
> > var WordApp = new ActiveXObject('Word.Application');
> > WordApp.Visible = true;
> > var documentlocation = crmForm.all.new_documentlocation.DataValue;
> > var wd = WordApp.Documents.Open(documentlocation);

>
> I am assuming for the sake of argument that you get this far.
>
> > wd.Select();
> > var Name = 'TestFred';

>
> Why have you defined this variable but not used it?
>
> > var wr = wd.Selection.GoTo(What : Word.WdGoToItem.wdGoToBookmark,Name :
> > 'TestFred');

>
> This is the line which has a number of possible errors in it.
>
> Error 1
> ============
>
> "wd" contains a reference to a Document object. The Selection object
> is a member of the Application object, not a Document object. So this
> should be "WordApp.Selection".
>
> Alternatively, you can call Document.GoTo().
>
> Document.GoTo() : "Returns a Range object that represents the start
> position of the specified item, such as a page, bookmark, or field"
> Application.Selection.GoTo(): "Moves the insertion point to the
> character position immediately preceding the specified item, and
> returns a Range object (except for the wdGoToGrammaticalError,
> wdGoToProofreadingError, or wdGoToSpellingError constant)."
>
> Errors 2 & 3
> ============
>
> Firstly, JavaScript does not support NAMED arguments.
>
> So this "GoTo(What : " is a syntax error.
>
> Secondly, you must as a result supply the arguments in the order that
> Word expects.
>
> "expression.GoTo(What, Which, Count, Name)"
>
> So you will need to supply default values for Which and Count.
>
>
> Errors 4 & 5
> ============
>
> "Word.WdGoToItem.wdGoToBookmark"
>
> There are two errors here:
>
> Firstly, you cannot access the constant wdGoToBookmark as a property of
> WdGoToItem.
>
> Secondly, apart from on the Server, you cannot access in JavaScript
> Word constants, such as "wdGoToBookmark" by name.
>
> You need to supply the constant value instead. The following is taken
> from Word's ObjectBrowser facility in its Macro editor:-
>
> "Const wdGoToBookmark = -1 (&HFFFFFFFF)"
> "Const Const wdGoToFirst = 1"
>
> Result
> ============
>
> Try:-
>
> var myRange = Document.GoTo(-1, 1, 1, 'TestFred');
> or
> WordApp.Selection.GoTo(-1, 1, 1, 'TestFred');
>
> I have not tested these, so there may be something else to consider as
> well. JavaScript does work, with a bit of fiddling.
>
> Regards
>
> Julian


 
Reply With Quote
 
MayBoy
Guest
Posts: n/a
 
      12-13-2006
Hi there

I just found out how, just create an empty object and use that.

ie var empty;
var wr =WordApp.Selection.GoTo(-1,empty,0,'TestFred);

Thanks!!
MayBoy wrote:
> Hi Julian
>
> I tried your answer but still get an error, when you put any value in
> for Which it says "You entered multiple destinations for a
> page.line.footnoteendnote or comment"
>
> I tried the same in VB and it works with a nothing as the Which and
> Count parameters but I can't do that in javascript.
>
> Any ideas?
>
>
> Julian Turner wrote:
> > MayBoy wrote:
> >
> > > Hi There

> >
> > Hi
> >
> > > I am trying to use the Goto method of the Word ActiveX object. I am
> > > trying to open a document and go to a named bookmark. If I use this
> > > code in VB it works, so I'm sure the approach is possible, I just can't
> > > get JavaScript to work with it.
> > >
> > > Here is the code I am using, the error I get from IE is Object
> > > Expected:

> >
> > It would help if you could identify which line, and which part of that
> > line, in your code is triggering this error.
> >
> > > Hope someone can help! Any help would be much appreciated
> > >
> > > function PageLoad()
> > > {
> > > var WordApp = new ActiveXObject('Word.Application');
> > > WordApp.Visible = true;
> > > var documentlocation = crmForm.all.new_documentlocation.DataValue;
> > > var wd = WordApp.Documents.Open(documentlocation);

> >
> > I am assuming for the sake of argument that you get this far.
> >
> > > wd.Select();
> > > var Name = 'TestFred';

> >
> > Why have you defined this variable but not used it?
> >
> > > var wr = wd.Selection.GoTo(What : Word.WdGoToItem.wdGoToBookmark,Name :
> > > 'TestFred');

> >
> > This is the line which has a number of possible errors in it.
> >
> > Error 1
> > ============
> >
> > "wd" contains a reference to a Document object. The Selection object
> > is a member of the Application object, not a Document object. So this
> > should be "WordApp.Selection".
> >
> > Alternatively, you can call Document.GoTo().
> >
> > Document.GoTo() : "Returns a Range object that represents the start
> > position of the specified item, such as a page, bookmark, or field"
> > Application.Selection.GoTo(): "Moves the insertion point to the
> > character position immediately preceding the specified item, and
> > returns a Range object (except for the wdGoToGrammaticalError,
> > wdGoToProofreadingError, or wdGoToSpellingError constant)."
> >
> > Errors 2 & 3
> > ============
> >
> > Firstly, JavaScript does not support NAMED arguments.
> >
> > So this "GoTo(What : " is a syntax error.
> >
> > Secondly, you must as a result supply the arguments in the order that
> > Word expects.
> >
> > "expression.GoTo(What, Which, Count, Name)"
> >
> > So you will need to supply default values for Which and Count.
> >
> >
> > Errors 4 & 5
> > ============
> >
> > "Word.WdGoToItem.wdGoToBookmark"
> >
> > There are two errors here:
> >
> > Firstly, you cannot access the constant wdGoToBookmark as a property of
> > WdGoToItem.
> >
> > Secondly, apart from on the Server, you cannot access in JavaScript
> > Word constants, such as "wdGoToBookmark" by name.
> >
> > You need to supply the constant value instead. The following is taken
> > from Word's ObjectBrowser facility in its Macro editor:-
> >
> > "Const wdGoToBookmark = -1 (&HFFFFFFFF)"
> > "Const Const wdGoToFirst = 1"
> >
> > Result
> > ============
> >
> > Try:-
> >
> > var myRange = Document.GoTo(-1, 1, 1, 'TestFred');
> > or
> > WordApp.Selection.GoTo(-1, 1, 1, 'TestFred');
> >
> > I have not tested these, so there may be something else to consider as
> > well. JavaScript does work, with a bit of fiddling.
> >
> > Regards
> >
> > Julian


 
Reply With Quote
 
Julian Turner
Guest
Posts: n/a
 
      12-13-2006

MayBoy wrote:

> Hi there
>
> I just found out how, just create an empty object and use that.
>
> ie var empty;
> var wr =WordApp.Selection.GoTo(-1,empty,0,'TestFred);
>
> Thanks!!


Hi

Good answer. Effectively you are supplying "undefined" as an argument,
which presumably word knows therefore to ignore. Sometimes null also
works, or an empty string.

Best Wishes

Jules

 
Reply With Quote
 
MayBoy
Guest
Posts: n/a
 
      12-13-2006
Hi Julian

I tried null and an empty sting but this was the ol=nly solution that
worked.

Hope you have a Merry Xmas!

and Thanks again.

Andy
Julian Turner wrote:
> MayBoy wrote:
>
> > Hi there
> >
> > I just found out how, just create an empty object and use that.
> >
> > ie var empty;
> > var wr =WordApp.Selection.GoTo(-1,empty,0,'TestFred);
> >
> > Thanks!!

>
> Hi
>
> Good answer. Effectively you are supplying "undefined" as an argument,
> which presumably word knows therefore to ignore. Sometimes null also
> works, or an empty string.
>
> Best Wishes
>
> Jules


 
Reply With Quote
 
Julian Turner
Guest
Posts: n/a
 
      12-14-2006

MayBoy wrote:

> Hi Julian
>
> I tried null and an empty sting but this was the ol=nly solution that
> worked.
>
> Hope you have a Merry Xmas!
>
> and Thanks again.
>
> Andy


Hi

Merry Xmas to you too. Your undefined variable is a solution I will
make use of myself.

Regards

Julian

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dumb question: in documentation, why Object#method, and not Object.method ? Elf M. Sternberg Ruby 15 07-29-2009 01:20 AM
how to use "goto" method inruby? dare ruby Ruby 6 12-22-2007 10:57 PM
ActiveX control in python vs ActiveX control in vb 6 (piece of code) vml Python 0 08-22-2007 09:57 AM
Disable ActiveX object in a javascript method at runtime. Pandit Javascript 1 06-15-2006 11:57 AM
ActiveX apologetic Larry Seltzer... "Sun paid for malicious ActiveX code, and Firefox is bad, bad bad baad. please use ActiveX, it's secure and nice!" (ok, the last part is irony on my part) fernando.cassia@gmail.com Java 0 04-16-2005 10:05 PM



Advertisments