作成日:2025年07月14日
「フィールドへ移動」の注意点


どうも、にゃん太です
ユーザーに入力を促すとき、「フィールドへ移動」スクリプトステップを使用して、特定のフィールドへフォーカスを当てる、という処理を行う事は多いと思います
手軽に使えて便利ですが、変な作り方をしていると思わぬ動作をする事があります
今回のメモでは、「フィールドへ移動」を使う場合の注意点を書いていきます
「フィールドへ移動」を使う場合
「フィールドへ移動」ですが、その名の通り指定したフィールドへフォーカスを移動させます
例えば、入力が必須のフィールドが空欄の場合にダイアログと共に対象のフィールドへフォーカスを当てる、といった使い方ができます
スクリプト
# ################################################## # ログイン処理 # ################################################## If [IsEmpty ( Table::ID )] カスタムダイアログを表示 ["警告"; "IDが入力されていません"] フィールドへ移動 [Table::ID] 現在のスクリプト終了 [テキスト結果: ] End If
こんな感じで処理が入っていると、ユーザーは直ぐに対象フィールドの入力が開始できるので、操作性が高まります
「フィールドへ移動」の注意点
では、本題の「フィールドへ移動」を使用する場合の注意点です
別に大した話ではないのですが、うっかりとやらかしてしまったの事があったので……
フィールド入力が禁止されていてもフォーカスされる
画面表示はさせたいけど、編集はさせたくないフィールドは、フィールド入力のチェックを外してレイアウトに配置する事が多いでしょう

こうしておけば、ユーザーはフィールドにフォーカスを入れられないので、編集される事はありません
しかし、スクリプトで対象フィールドへ「フィールドへ移動」してしまうと、フォーカスされてしまいます
最初から入力禁止の場合はこんなスクリプトは書かないと思いますが、途中で禁止に変更した場合などは修正忘れに注意しましょう
同じフィールドを複数配置している
レイアウト設計次第では、同じフィールドを複数配置する場合があります
「フィールドへ移動」はフィールド名を指定するだけなので、希望とは違う方のフィールドへフォーカスが移動してしまう場合もあります
こんな時、タブ順や配置順を変更しても移動先は切り替わりません
どうも、レイアウトへ配置した順番で判定されている様です
一度切り取って配置し直すなどしないと、「フィールドへ移動」は切り替わらないので注意しましょう
もっとも、こんな場合は「オブジェクトへ移動」を利用した方が確実でしょう

以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください