ReBonjour,
Histoire d'obtenir un kit exploitable pour programmer VB sur OOo, je me
suis posé la question suivante :
J'ai trouvé la réponse en utilisant la page 667 du livre.
J'ai trouvé comment lancer une macro de OOo à partir de VB
et comment utiliser Xray à partir de VB.
Ce qui suit est du code VB.
rem macro appelant Xray sur l'objet oObj :
Sub VBXray(ByRef oObj As Object)
Dim Arguinvoke1(0), Arguinvoke2(0), Arguinvoke3(0) As Object
Arguinvoke1(0) = oObj
lancerMacroBasic("XrayTool._Main.Xray", Arguinvoke1,
Arguinvoke2, Arguinvoke3)
End Sub
rem macro pour lancer un script
Sub lancerMacroBasic(ByVal nomScript As String, ByVal Arguinvoke1 As
Object, ByVal Arguinvoke2 As Object, ByVal Arguinvoke3 As Object)
Dim mspf As Object, scriptPro As Object, monScript As Object
mspf =
CreateUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
scriptPro = mspf.createScriptProvider("")
On Error GoTo PasScript1
monScript = scriptPro.getScript("vnd.sun.star.script:" &
nomScript & "?language=Basic&location=application")
' appel de script simple, sans arguments et sans résultat en retour
monScript.invoke(Arguinvoke1, Arguinvoke2, Arguinvoke3)
On Error GoTo 0
Exit Sub
PasScript1:
Resume PasScript2
PasScript2:
MsgBox("Script pas trouvé : " & nomScript, 16)
End Sub
rem macro pour charger les services:
Public Function LoadService() As Boolean
On Error GoTo Sortie
oServiceManager = CreateObject("com.sun.star.ServiceManager")
oDesktop =
oServiceManager.createInstance("com.sun.star.frame.Desktop")
oDispatcher =
oServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
oBasicLibraries =
CreateUnoService("com.sun.star.script.ApplicationScriptLibraryContainer")
oDialogLibraries =
CreateUnoService("com.sun.star.script.ApplicationDialogLibraryContainer")
If oBasicLibraries.hasByname("XrayTool") Then
oXrayTool = oBasicLibraries.getbyname("XrayTool")
oXrayModule = oXrayTool.getbyname("_Main")
End If
oBasicLibraries.loadlibrary("XrayTool")
LoadService = True
Sortie:
LoadService = False
End Function
Je tiens disponible un module qui contient toutes ces macros permettant
de développer à partir de VB.
Si cela intéresse, il pourrait être publier sur le site
fr.openoffice.org ou en tant que codesnippet.
Cordialement.
Didier Dorange-Pattoret
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]