「コピーして貼り付けるだけにしたい」「直接タイピングで書き換えられると困る」という場面があります。フィールドの入力制限と OnObjectKeystroke トリガを組み合わせることで、貼り付けのみを許可するフィールドを作れます。
設定手順
① フィールドの入力設定を変更する
対象フィールドを選択 →「フィールド入力設定」→「ブラウズモード」をオンにします。
これでフィールドにフォーカスが当たりクリックできる状態になります。
② OnObjectKeystroke トリガにスクリプトを設定する
フィールドの「スクリプトトリガ」から OnObjectKeystroke を選び、以下のスクリプトを割り当てます。
エラー処理 [ オン ]
If [ Get ( トリガキー入力 ) = Char ( 9 ) ]
// Tab キー:次のフィールドへ移動(通常通り)
現在のスクリプト終了 [ テキスト結果: "" ]
Else If [ Get ( トリガキー入力 ) = 0 ]
// 貼り付けなどの特殊操作:キャンセルしない
現在のスクリプト終了 [ テキスト結果: False ]
Else
// 文字キー入力:元に戻してブロック
元に戻す / 再実行 [ 元に戻す ]
End If
エラー処理 [ オフ ]
スクリプトの動作解説
| 条件 | 動作 | 意図 |
|---|---|---|
| Tab(Char(9)) | そのまま終了 | 通常のフォーカス移動を許可 |
| キー入力値が 0 | False で終了せずキャンセル | ペースト操作(Cmd+V)を通す |
| それ以外の文字入力 | 元に戻す | 直接タイピングをブロック |
ポイント
- ペースト操作(Cmd+V / Ctrl+V)は
Get ( トリガキー入力 )が0を返すため、このスクリプトではブロックされず通過します。 - 「元に戻す」はキー入力直後に実行されるため、ユーザーには文字が入力できないように見えます。
- フィールドの「編集不可」設定だけではペーストも禁止されてしまうため、このトリガによるアプローチが有効です。