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