LibreOffice Calcのダイアログ(ユーザーフォーム)のタブオーダー設定法
LibreOffice Calc 6.1では、スプレッドシート上とダイアログ上にコントロールまたはフォームコントロールを配置することができる。ダイアログというのはエクセルでいうところのユーザーフォームのこと。 操作中のコントロールはアクティブになる。コントロールがアクティブな状態にあることは、キーボードからの入力などの操作をそのコントロールが受け付ける状態になっていることを意味している。 キーボードのTabキーを用いてアクティブな状態にあるコントロールを遷移させることができる。遷移させていくときの順番はタブの順序またはタブオーダーと呼ばれている。 コントロールには「タブの順序」と名付けられた属性を持っているものがあり、この値である数値によってアクティブな状態のコントロールが遷移していく順番を決定することができる。 LibreOffice 6.1 Calcには、スプレッドシート上に配置するフォーム・コントロールのタブオーダーを一括で管理することができるダイアログ・ボックスが用意されている。各コントロールの属性一覧を表示するダイアログ・ボックスを開けば「タブの順序」という項目があり、その右端のボタンを押せばタブの順序を一括管理するダイアログ・ボックスが開く。 しかし、ダイアログ上に配置するコントロールに関してはこの機能がどうやらないようだ。そのため、タブの順序を設定するのに手間取ることがある。ダイアログ上に配置したコントロールの数が多くなるとやっかい。 ここではこの問題に対するちょっとした対処方法を書き留めておく。 シート上のコントロールとダイアログ上のコントロール LibreOffice 6.1 Calcでは、スプレッドシート上のコントロールとダイアログ上のコントロールとでは、タブの順序を決める属性値の挙動が異なる。 スプレッドシート上のコントロールにおけるタブの順序を示す属性値では、コントロール間の同一値が受け入れられる。数値は0から始まるが、同じ番号が重複していても問題は起こらない。 例えば5つのコントロールがスプレッドシート上に配置されている場合、各々の属性値を0, 0, 1, 1, 2と設定することが可能。0, 0, 1, 1, 2という順番でアクティブなコントロールが遷移する。 しかし、ダイアログ上のコントロールの場合、コントロー...