Top > OOobbs > 72

OOobbs/72 Edit

  • サマリ: StarDesktop.terminate()で落ちる
  • 環境: Calc
  • 状態: 解決
  • 投稿者: さんきち?
  • 投稿日: 2005-06-22 (水) 19:38:16

質問 Edit

RedHat 9 + OOo1.1.4 でマクロの中から OOo を終了させようと

StarDesktop.terminate()

を実行させたところ Fatal exception: Signal 11 で落ちてしまいました。 バグなのか設定の問題なのか書き方の問題なのか。これに関して情報をお持ちの方はいらっしゃいませんか。

回答 Edit

  • ドキュメントライブラリのモジュールにあるコードに
Sub OOo_terminate
 StarDesktop.terminate()
End Sub

としてやります。そして,OOoBasic IDE が開いている状態で実行すると,マクロが動作しているために終了できません。

Basic IDE を閉じた状態でドキュメントライブラリにあるコードを実行すると,OOo は終了しますがエラーレポートが表示されます。

これは,OOo を終了させるマクロが終了していないうちにドキュメントが閉じられてしまい,マクロの実行が途中で停止させられるためではないかと思います。

ドキュメントライブラリに入れた上記のコードの代わりに,アプリケーションライブラリの "Standard" ライブラリに同じコードを書き込んで実行すると,エラーになりません。

  • はにゃ?? 2005-06-23 (木) 01:50:25
  • なるほど

実行中のマクロ自身が入っているドキュメントが閉じられるからということですか。気持ちはわからないことはないですが落ちるのはいただけないですね。

ドキュメントではなく soffice の Standardライブラリに StarDesktop.terminate() と書いて実行したら正常に終了できることを確認しました。(わざわざサブルーチン OOo_terminate を作らなくてもいいのですよね)

終了までいけるようになったのでコンソールから

% soffice 'macro:///Standard.Module1.Main()'

のようにしてバッチ処理できるようになりました。

ありがとうございました。

  • さんきち? 2005-06-23 (木) 15:42:00


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes