OOobbs/72
質問
RedHat 9 + OOo1.1.4 でマクロの中から OOo を終了させようと StarDesktop.terminate() を実行させたところ Fatal exception: Signal 11 で落ちてしまいました。 バグなのか設定の問題なのか書き方の問題なのか。これに関して情報をお持ちの方はいらっしゃいませんか。 回答
Sub OOo_terminate StarDesktop.terminate() End Sub としてやります。そして,OOoBasic IDE が開いている状態で実行すると,マクロが動作しているために終了できません。 Basic IDE を閉じた状態でドキュメントライブラリにあるコードを実行すると,OOo は終了しますがエラーレポートが表示されます。 これは,OOo を終了させるマクロが終了していないうちにドキュメントが閉じられてしまい,マクロの実行が途中で停止させられるためではないかと思います。 ドキュメントライブラリに入れた上記のコードの代わりに,アプリケーションライブラリの "Standard" ライブラリに同じコードを書き込んで実行すると,エラーになりません。
実行中のマクロ自身が入っているドキュメントが閉じられるからということですか。気持ちはわからないことはないですが落ちるのはいただけないですね。 ドキュメントではなく soffice の Standardライブラリに StarDesktop.terminate() と書いて実行したら正常に終了できることを確認しました。(わざわざサブルーチン OOo_terminate を作らなくてもいいのですよね) 終了までいけるようになったのでコンソールから % soffice 'macro:///Standard.Module1.Main()' のようにしてバッチ処理できるようになりました。 ありがとうございました。
|