web-dev-qa-db-ja.com

GUIなしでコマンドラインからLibreOfficeマクロを実行するにはどうすればよいですか?

コマンドラインから.odtファイルでLibreOfficeマクロを実行したい。これをスケールアップしてマクロを複数のファイルに適用したいので、マクロの実行ごとにGUIがポップアップすることは望ましくありません。

私は現在動作中のマクロを持っており(これも最後にファイルを閉じます)、私が見つけることができる限り、次のように呼び出すことができるはずです:

soffice --invisible --nofirststartwizard --headless --norestore "D:\myFolder\my file.odt" "macro:///Standard.Module1.myMacro"

または

swriter --invisible --nofirststartwizard --headless --norestore "D:\myFolder\my file.odt" "macro:///Standard.Module1.myMacro"

どちらのコマンドもマクロを正しく実行しますが、実行中にGUIが開閉します。これを防ぐにはどうすればよいですか?

私はWindows10コンピューターで作業していて、ヘルプ> LibreOfficeについて次の情報を提供しました:

バージョン:5.2.1.2
ビルドID:31dd62db80d4e60af04904455ec9c9219178d620
CPUスレッド:4; OSバージョン:Windows 6.2; UIレンダリング:デフォルト。
ロケール:en-US(en_US);計算:CL

3
dimpol

問題は、LibreOfficeを起動すると表示されなくても、ドキュメントを開いた後に表示されることです。 https://forum.openoffice.org/en/forum/viewtopic.php?f=5&t=22548 に解決策があります:

  1. LibreOfficeをヘッドレスで実行して、マクロを呼び出します。コマンドライン呼び出しでは、 not 開くドキュメントを指定する必要があります。マクロのみを指定する必要があります。例(新しいマクロ構文を使用):

    soffice -headless -invisible "vnd.Sun.star.script:Standard.Module1.MySubroutine?language=Basic&location=application"

  2. マクロは、Hiddenプロパティをtrueに設定して loadComponentFromUrl を呼び出します。これにより、ドキュメントが表示されなくなります。

  3. これで、マクロはドキュメントで実行しようとしていたことをすべて実行します。

[〜#〜]編集[〜#〜]

さまざまなファイルで機能させるには、古いマクロ構文を使用してファイル名をパラメーターとして渡します。 https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=8232 の例:

soffice "macro:///Library3.Module1.test_Args(arg1,123,4.567,2000-12-31)"
2
Jim K