Calc でダブルクリックアクションの検知をするには、シートイベントから設定する他ないのでしょうか?
できればマクロで操作したいのですが
Calc でダブルクリックアクションの検知をするには、シートイベントから設定する他ないのでしょうか?
できればマクロで操作したいのですが
ThisComponentはXModelを実装しており、そのgetCurrentControllerメソッドの戻り値が、(Calcの場合)SpreadsheetViewサービスです。
https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1frame_1_1XModel.html
https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1frame_1_1Controller.html
https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1SpreadsheetView.html
このサービスはXEnhancedMouseClickBroadcasterを実装していますから、リスナだかハンドラだかを登録していくのが良いでしょう。
他の言語と異なりVBA等はクラスの考え方がなく、後から仕組みが加えられていったのだろう、と認識しています。StarBasicにおけるリスナの作り方はCreateUnoListener関数の説明を参照してください。内部的なメカニズムは結構複雑なので割愛します。
https://help.libreoffice.org/7.1/en-US/text/sbasic/shared/03132000.html
ありがとうございます!
参照して試行してみます!