openoffice-api mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Eberlein <pet....@refofd.verwalt-berlin.de>
Subject Re: COM OLE Automation bridge; property Name not supported
Date Fri, 29 Aug 2014 10:46:09 GMT
Hello Jörg,
Am 29.08.2014 10:17, schrieb Jörg Schmidt:
>> From: Peter Eberlein [mailto:pet.ebe@refofd.verwalt-berlin.de]
>
>> because aoo cannot open all Word docs without crashing
>> (https://issues.apache.org/ooo/show_bug.cgi?id=125419), I
>> wanted to let
>> do WinWord the job.
>>
>> I need to know the names of all bookmarks.
>> So StarBasic looks like this:
>>
>> wordInstance = CreateObject("Word.Application")
>> wordDoc = wordInstance.documents.open("c:\test.docx")
>> For i = 1 To wordDoc.Bookmarks.Count
>> 	bookmark = doc.Bookmarks(i)
>> 	msgbox bookmark.Name 'fails
>> 	'if the property has arguments:
>> 	msgbox bookmark.hasProperty("Name") 'false [1]
>> 	msgbox bookmark.getValue("Name") 'property not supported
>> next
>>
>>
>>
>>
>> Any idea how to get the bookmarks name?
>> I think "Name" is a key word and can not be used in StarBasic.
> ".Name" Is imho correctly. I do not know where the problem comes, I think there is
> perhaps bug in the automation bridge of OO.
>
Yes, I have to stand corrected.
"bookmarks(index).range.text" fails too, so it is not a key word 
problem. May be index access doesn't work.
count is a valid property of the bookmarks object.

> You can try the following:
>
> Sub main( )
> oleService = createUnoService("com.sun.star.bridge.OleObjectFactory")
> WSH= oleService.createInstance("MSScriptControl.ScriptControl")
> WSH.Language = "VBScript"
> vbs=vbs+"Set objWord = CreateObject(""Word.Application"")"+Chr(10)
> vbs=vbs+"objWord.Visible = True"+Chr(10)
> vbs=vbs+"Set objDoc = objWord.Documents.Open(""D:\testdokument2.doc"")"+Chr(10)
> vbs=vbs+"Set xx = objDoc.Bookmarks"+Chr(10)
> vbs=vbs+"xxx = xx.Count"+Chr(10)
> vbs=vbs+"For i = 1 To xxx"+Chr(10)
> vbs=vbs+"k = k & xx(i).Name & CHR(13)"+Chr(10)
> vbs=vbs+"Next"
> WSH.ExecuteStatement(vbs)
> msgbox WSH.CodeObject.k
> End Sub
>
This Windows Scripting Host workaround did it,
Thanks

Peter


---------------------------------------------------------------------
To unsubscribe, e-mail: api-unsubscribe@openoffice.apache.org
For additional commands, e-mail: api-help@openoffice.apache.org


Mime
View raw message