如何 运行 来自另一个文档的脚本
How to run a script from another document
我有两个文档 LibreOffice calc test1.ods 和 test2.ods。
我想要 运行 来自 test1 脚本的 test2 中的脚本。
- 当 test2 由 test1 的脚本打开时,我无法 运行 test2 上的脚本,即使是来自 test2。我如何传递 test2 文档的安全性?
- 我如何 运行 从 test1 上的脚本自动生成 test2 上的脚本?
REM ***** BASIC *****
'Script on Test1
Sub Main
Dim urlDest As String
Dim PropFich(1) As New com.sun.star.beans.PropertyValue
Dim oDocDest As Object
PropFich(0).Name = "MacroExecutionMode"
PropFich(0).value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE
urlDest = ConvertToUrl("/home/patrick/Bureau/Test/test2.ods")
oDocDest = StarDesktop.loadComponentFromUrl(urlDest, "_blank", 0, PropFich())
' ...
'run oDocDest.Standard.Module1.Main() ???
End Sub
获取其他文档的脚本提供程序并使用它来调用宏。
oScriptProvider = oDocDest.getScriptProvider()
oScript = oScriptProvider.getScript(_
"vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document")
result = oScript.invoke(Array(), Array(), Array())
为此,您需要允许宏 运行,方法是转至 工具 > 选项 > 安全性。
我有两个文档 LibreOffice calc test1.ods 和 test2.ods。 我想要 运行 来自 test1 脚本的 test2 中的脚本。
- 当 test2 由 test1 的脚本打开时,我无法 运行 test2 上的脚本,即使是来自 test2。我如何传递 test2 文档的安全性?
- 我如何 运行 从 test1 上的脚本自动生成 test2 上的脚本?
REM ***** BASIC *****
'Script on Test1
Sub Main
Dim urlDest As String
Dim PropFich(1) As New com.sun.star.beans.PropertyValue
Dim oDocDest As Object
PropFich(0).Name = "MacroExecutionMode"
PropFich(0).value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE
urlDest = ConvertToUrl("/home/patrick/Bureau/Test/test2.ods")
oDocDest = StarDesktop.loadComponentFromUrl(urlDest, "_blank", 0, PropFich())
' ...
'run oDocDest.Standard.Module1.Main() ???
End Sub
获取其他文档的脚本提供程序并使用它来调用宏。
oScriptProvider = oDocDest.getScriptProvider()
oScript = oScriptProvider.getScript(_
"vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document")
result = oScript.invoke(Array(), Array(), Array())
为此,您需要允许宏 运行,方法是转至 工具 > 选项 > 安全性。