Ammettiamo che ho un wbook chiamato PROVA.XLS con una macro coin una sub MIA_MACRO()
Il wbook risiede su \\mio_server\mia_dir\PROVA.XLS
Ora posso lanciare MIA_MACRO() da un altro pc?
Grazie.
Ammettiamo che ho un wbook chiamato PROVA.XLS con una macro coin una sub MIA_MACRO()
Il wbook risiede su \\mio_server\mia_dir\PROVA.XLS
Ora posso lanciare MIA_MACRO() da un altro pc?
Grazie.
La macro viene lanciata quando apri il foglio di Excel o quando interagisci con un elemento del tuo file che scatena l'esecuzione della macro.
In sostanza, dallo stesso PC o da un altro PC, tutto quello che puoi fare è aprire il file con Excel ottenendo lo stesso risultato.
Spiega qual è lo scopo della macro, probabilmente non si tratta dello strumento corretto da utilizzare.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
In effetti ho questo codice che genera un pdf da un documento word.Originariamente inviato da alka
La macro viene lanciata quando apri il foglio di Excel o quando interagisci con un elemento del tuo file che scatena l'esecuzione della macro.
In sostanza, dallo stesso PC o da un altro PC, tutto quello che puoi fare è aprire il file con Excel ottenendo lo stesso risultato.
Spiega qual è lo scopo della macro, probabilmente non si tratta dello strumento corretto da utilizzare.
Naturalmente sul pc dove lancio la macro è installato OpenOffice, quindi il codice funziona perfettamente perchè fa riferimento a librerie installate con il pacchetto.
Ora la mia idea era di usare lo stesso codice da un altro pc dove non è installato OpenOffice, invocando le librerie installate sul pc dove ho OpenOffice, questo è tutto.
Visto che il pc dove è installato OpenOffice viene usato come piccolo server ed è sempre accesso.
Option Explicit
Sub test_pdf()
Dim oSM, oDesk, oDoc As Object
Dim OpenParam(1) As Object
Dim SaveParam(1) As Object
Set oSM = CreateObject("com.sun.star.ServiceManager")
Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
Set OpenParam(0) = MakePropertyValue("Hidden", True)
Set oDoc = oDesk.loadComponentFromURL("file:///C:/1727-1.doc", "_blank", 0, OpenParam())
Set SaveParam(0) = MakePropertyValue("FilterName", "writer_pdf_Export")
Call oDoc.storeToURL("file:///C:/1727-1.pdf", SaveParam())
Set oDesk = Nothing
Set oSM = Nothing
End Sub
Public Function MakePropertyValue(cName, uValue) As Object
Dim oStruct, oServiceManager As Object
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set oStruct = oServiceManager.Bridge_GetStruct("com.sun.star.bea ns.PropertyValue")
oStruct.Name = cName
oStruct.Value = uValue
Set MakePropertyValue = oStruct
End Function
***********************
un altra idea potrebbe essere di invocare gli oggetti OpeneOfice sull'altro pc tipo:
Set oSM = CreateObject(\\nomepc\"com.sun.star.ServiceManager ")
Set oDesk = oSM.createInstance(\\nomepc\"com.sun.star.frame.De sktop")
forse dico una stupidata....
**************************