Top > OOoBasic > Generic > Accelerator

ショートカットキー Edit

ショートカットキーの設定をいじくります。

概要 Edit

ショートカットキーはいくつかのパートに分かれています。

  • ドキュメント
  • OpenOffice.org 全体
  • モジュールごと (ドキュメントの種類ごと)

ショートカットキーはドキュメントごとに設定できます。また、ドキュメントに設定がある場合にはドキュメントのものが優先されます。(ツール - オプションの設定の OpenOffice.org - 読み込みと保存設定の「ユーザー独自の設定をドキュメントとともに読み込む」にチェックが入っている場合。)

設定へアクセスするには、最初のみ方法が違います。

ドキュメント Edit

ドキュメントごとの UIConfigurationManager から ShortCutManager にアクセスします

oDoc = ThisComponent
oCfgMgr = oDoc.getUIConfigurationManager()
oAccConfig = oCfgMgr.ShortCutManager

OpenOffice.org Edit

com.sun.star.ui.GlobalAcceleratorConfiguration サービスをインスタンス化します

oAccConfig = CreateUnoService( _
  "com.sun.star.ui.GlobalAcceleratorConfiguration")

モジュールごと Edit

com.sun.star.ui.ModuleAcceleratorConfiguration サービスをインスタンス化、モジュールの省略名により初期化します

 oAccConfig = CreateUnoService( _
   "com.sun.star.ui.ModuleAcceleratorConfiguration")
 
 aArg = CreateUnoStruct("com.sun.star.beans.PropertyValue")
 aArg.Name = "ModuleIdentifier"
 aArg.Value = "scalc"
 oAccConfig.initialize(Array(aArg))

モジュール名は省略形でないと初期化に失敗します。モジュールの省略形は コンフィグレーションの /org.openoffice.Setup.Office.Factories 以下で見つけられます。

最近のバージョンではモジュール名で指定します。scalc であれば com.sun.star.sheet.SpreadsheetDocument になります。短縮名と同様のコンフィグレーションで定義されています。

コマンドの種類 Edit

キーに割り当てられるのは、メニューの項目と同じです。

UNO コマンド、マクロを実行する URL などです。(OOo の拡張機能などにより変化することがあります)

保存 Edit

編集を保存します。設定がファイルに実際に書き込まれます。

oAccConfig.store()

変更されているかどうかは isModified メソッドで確認できます。

再読み込み Edit

ストレージから設定を再度読み込みます。

oAccConfig.reload()

リセット Edit

初期状態に戻すことができます。

oAccConfig.reset()

キー設定取得 Edit

すべてのキー設定を取得するには getAllKeyEvents メソッドを呼びます。

aKeys = oAccConfig.getAllKeyEvents()

返り値は []com.sun.star.awt.KeyEvent です。KeyEvent struct のメンバーは次のものがあります。

KeyEvent説明
KeyCodeキーコード com.sun.star.awt.KeyCode の定数
KeyCharキーの文字 (使用されない)
KeyFuncキー機能 (使用されない)
Modifiers修飾キー com.sun.star.awt.KeyModifier の定数

キーコードは多いので取り上げません、上記リンク参照。修飾キー Modifires は次の値になります。

KeyModifier説明
SHIFT1シフト
MOD12Ctrl
MOD24Alt

これらの値は組み合わせられます。また、修飾キーがない場合にはゼロ 0 です。(が、修飾キーなしの設定はできません)

取得した値にはキーの組み合わせのみで、そのショートカットキーにどのようなコマンドが割り当てられているか分かりません。

割り当てられたコマンドの取得 Edit

キー設定があるキーの一覧は上記で取得できますが、そのデータにコマンドの割り当ては含まれていません。個別にキー設定を指定してコマンド設定を取得します。

aKeyEvent = ...

sCmd = oAccConfig.getCommandByKeyEvent( aKeyEvent )
msgbox sCmd

コマンドの割り当て Edit

キーの組み合わせとコマンドを指定して設定を追加、変更します。

aKeyEvent = ...

sCmd = ".uno:Paste"
oAccConfig.setKeyEvent( aKeyEvent, sCmd )

削除 Edit

removeKeyEvent メソッドで削除します。

oAccConfig.removeKeyEvent( aKeyEvent )

コマンドからキーの組み合わせ Edit

コマンドを指定してキーの組み合わせを調べます。

aKeys = oAccConfig.getKeyEventsByCommand(".uno:ToggleRelative")

コマンドが存在しない時には com.sun.star.container.NoSuchElementException が送出されます。

デフォルトのキーの組み合わせ Edit

特定のコマンドのみをデフォルトに戻したいときなどすべてをリセットしなくても推奨されるキーの組み合わせを取得してデフォルトの組み合わせを知ることができます。引数には配列として複数のコマンドを同時に与えることができます。

aKeys = oAccConfig.getPreferredKeyEventsForCommandList( Array(".uno:ToggleRelative") )

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