ファイルを開くときのセキュリティとしては標準のログイン機能を利用できますが、さらに認証コードの入力を追加しましょう。
ファイルを開くときだけでなく、特定のレイアウトへアクセスさせるときなどにも使えますね。
今回はカスタムダイアログで作ってみます。イメージ↓
シンプルw
下準備としてフィールドを4つ作成しました。
- g入力コード:ユーザーに入力させるためのフィールド
- g認証コード:実際の認証コード
- g新認証コード:コードを変更するときに用いる新コード入力用
- g新認証コード確認:新コードの確認用
(「g」はグローバルフィールドへ個人的に付けている文字です。)
「ファイルを開く」スクリプト
認証に失敗したらファイルを閉じてしまおうという作戦です。ここでは g入力コード と g認証コード の2つを用いています。
最初にフィールド設定で g入力コード を空欄にします。ユーザーに入力させたときは必ずその後の行で空欄に戻しますが、予期しないエラーで値が残っていたらマズイのでしつこいくらい空欄にしていきます。
次に冒頭の認証コードダイアログを出しますが、その内容はこちら。
入力させるフィールドに g入力コード を指定します。 「パスワード文字(*)を使用」にチェックを入れるとそれらしくなりますね。
g入力コード と g認証コード が一致したら、g入力コード を空欄に戻してから
と表示します。
ダメだったら問答無用でファイルを閉じます!g入力コード を空欄に戻すのを忘れずに!
このスクリプトをファイルオプションで「このファイルを開く時」の「実行するスクリプト」部分に指定すればOKです。標準のログイン機能を使う場合は「次のアカウントを使用してログイン」のチェックは外していることと思います。
これで開くときに認証画面が出るようになりました。
ダイアログがかっこ悪い!という方は専用のレイアウトを用意しても良いかもしれません。
「認証コード変更」スクリプト
認証コードを変更できるダイアログも作ってみましょう。イメージ↓
ここでは下準備したフィールドを4つとも使います。スクリプトはこちら↓
例によってユーザーに入力させるフィールドを空欄にしてから…
最初に表示するダイアログの内容はこうなっています。
旧コードの確認に g入力コード を流用します。
g入力コード と g認証コード が違っていたら不可。
g新認証コード と g新認証コードの確認が違っていても不可。
という分岐をしたあとに、晴れて g認証コード を g新認証コード で上書きします。
さらにしつこくユーザーに入力させたフィールド3つを空欄にして終わりです。(この操作は本来最後のやつだけで良いのですが、心配症なので最初にも入れています。)
注意点が1つ!
カスタムダイアログで 入力フィールド 機能を使うときは、デフォルトボタンの押下でフィールド値を決定します。
ボタン2とボタン3に何を割り当てようがデフォルトボタンで決定されますので、自分のようにボタン2にOK、デフォルトボタンにキャンセルを設定する仕様の方は気をつけましょう。OKボタン押したのに失敗する!ということになりかねません。
この理由によりスクリプトではデフォルトボタンしか設定していません。
押下は「おうか」と読む。メモ。。。