渡邊です、kaigi2018お疲れ様でした マクロ実行時に発生するクラッシュ事例について報告します。 大阪十三でのHack時にBASEマクロでチラホラ出てたのを確認し、今日、内容を確認しました。(条件がややこしいですが、クラッシュします)
発生アプリ:BASE(FireBird)とCALC 発生状況:マクロから非表示モードでCALCシートを呼び出した後、Close処理にブレイクポイントを設け、一定時間経過後に処理を続けると発生する 症状:LibreOfficeがクラッシュ Ver:6.0からだと思います 手順 CalcやBASEのマクロから他のCALCシートを非表示モードで呼び出すマクロを記述する 1. 処理完了時のoDoc.close(True)の行にブレイクポイントをセットする 2. CalcやBASEのマクロから他のCALCシートを非表示モードで呼び出す 処理を頭から流す 3.ブレイクポイントで処理が停止した状態を30秒程度キープする 4.キープしていた処理を続ける 5.ソフトがダウンする LibreOfficeのCalcやBASE(Firebird)で確認しました OS:Windows10-64 バージョン: 6.0.3.2 (x64) Build ID: 8f48d515416608e3a835360314dac7e47fd0b821 CPU threads: 2; OS:Windows 10.0; UI render: default; ロケール: ja-JP (ja_JP); Calc: group 表示モード時は発生しないようです。 *****マクロコード例***** Sub Hidden_test001 '******** 非表示モードで開いたODSファイルをクローズする処理時にLibreOfficeがクラッシュします ******* Dim oSheet As Object Dim SheetMei as string Dim oUrl As String Dim oDoc As Object '******** 開く予定のODSファイルをフルパスで指定し&でファイル名を繋ぎます ********** Dドライブを指定した例です oUrl = ConvertToURL("D:\DATA\") & "test.ods" '********************************************************* Dim aArg2(0) As New com.sun.star.beans.PropertyValue '####### 非表示モード ####### aArg2(0).Name = "Hidden" '+++++ この行を有効にすると、指定したCalcシートを非表示モードで開きます ++++++ '####### 非表示モード ####### '******* シートをaArg2(0)で指定したモードで別ウィンドウで開きます aArg2(0).Value = True oDoc=StarDesktop.loadComponentFromURL(oURL, "_blank", 0, aArg2()) 'Calcシートの0番シートをパラメーターで指定されたシート名に変更します(処理例) oSheet=oDoc.Sheets(0) '0番のシートを選択します SheetMei = "シートHidden_ON" '非表示モードの時はシート名を"シートHidden_ON"に指定します oSheet.Name= SheetMei '表示したCalcファイルの0番のシート名を変更します oDoc.store() oDoc.close(True) '★ブレイクポイントをここにセットしてください '★上のoDoc.Close(True)の行にブレイクポイントをセット後、マクロを実行し、処理停止状態のまま20~30秒程度経過後、処理を続けるとクラッシュします。 End Sub BASEのいつもの不具合かと思いましたが、calcも絡むので全体的だと判断し報告させていただきました。 -- Unsubscribe instructions: E-mail to discuss+unsubscr...@ja.libreoffice.org Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette List archive: https://listarchives.libreoffice.org/ja/discuss/ All messages sent to this list will be publicly archived and cannot be deleted