OOobbs2/84
質問
エクセルでいうところのイベントプロシージャですが、 OOoにはそれに該当するイベントがないのですが、何か別の仕組みが あるのでしょうか。 イベントの種類がすくないような感じがしますが、今後増えるのでしょうか。以上何か知っていましたらお教えください。ありがとうございます。 回答
例として単一のセルを挙げます。セルオブジェクトは com.sun.star.util.XModifyBroadcaster OOo Basic で書くと次のような感じになります。 Sub Main oDoc = ThisComponent oSheet = oDoc.getSheets().getByIndex(0) oCell = oSheet.getCellByPosition(0,0) oModifyListener = CreateUnoListener( _ "ModifyListener_", "com.sun.star.util.XModifyListener") oCell.addModifyListener(oModifyListener) End Sub ' com.sun.star.util.XModifyListener Sub ModifyListener_modified( oEv ) msgbox oEv.Source.getValue() End Sub Sub ModifyListener_disposing( oEv ) End Sub セルオブジェクトでは上記のリスナーも含めて次のようなリスナーが利用できます。
XPropertyChangeListener はセルのプロパティの変化によるイベント駆動に利用できます (とはいえ、Bound や Constrained なプロパティが全然ないのでほとんど利用する場面がありませんが)。 これらリスナーを利用するには Broadcaster にリスナーを追加する必要があるので、まずドキュメントを開いたときなどのイベントにマクロを割り当ててリスナーを追加するマクロを実行させる必要があります。
感想,コメント,メモ
|