従業員マスタには氏名や住所、給与単価などの機密情報が含まれます。Accessで運用する場合、ログイン権限による制御はもちろんですが、実務では「管理者がログインしたまま離席した瞬間」の物理的なリスクも無視できません。
本記事では、VBAを使わずに標準マクロと関数1行で実装できる、「開く直前の最終確認パスワード」の組み込み方を解説します。
1. 実装した機能と「現場での役割」
-
二段階認証の自動化:ログイン者の権限判別後、さらに入力窓を出すフロー。
-
物理的な覗き見防止:離席中のPCで第三者がマスタを閲覧するリスクを低減。
-
InputBox関数の活用:専用フォームを作らずに関数1行で入力窓を表示。
-
ガードレール設計:誤入力やキャンセル時にマクロを強制終了し、暴走を予防。
2. 個人情報保護の観点で「最後の砦」パスワード要求
実際のポップアップフォーム
ボタンをクリックすると、この入力画面が表示されます。 管理者PCが常に「ログイン中」であっても、マスタを開く瞬間にこの一段階を挟むことで、意図しない情報閲覧を防ぐ「最後の砦」として機能します。
3. マクロの構成解説(VBA不要)
実際のマクロ
- 実際のマクロのコピペ活用
-
■ サブマクロ: 従業員マスタ If [権限]=2 Then | | If InputBox("セキュリティ強化のため 従業員マスタ用のパスワードを入力してください。")="9999" Then | | | | フォームを開く | | フォーム名:F01従業員リスト | | ビュー:フォーム | | ウィンドウモード:標準 | | | | マクロの中止 | | | Else | | | | メッセージボックス | | メッセージ:パスワードが違います。 | | 警告音:はい | | 種類:警告 | | タイトル:エラー | | | | マクロの中止 | | | End If | Else | | メッセージボックス | メッセージ:従業員マスタを開く権限がありません | 警告音:はい | 種類:警告 | タイトル:権限なし | | マクロの中止 | End If
※パスワード「9999」は開発用の仮設定です。運用時は管理者がマクロのデザイン画面で直接変更して使用します。
※[権限]=2 は従業員マスタで個々に付与した権限をメインメニューに表示してそれを参照しています。
4. 認証後 → 従業員リストの表示
正しいパスワードが入力されると、マクロの次のアクションが実行され、機密情報を安全に閲覧・編集できる「従業員リスト」画面へと遷移します。
![]() |
従業員リストの作り方と活用方法
必要最低限の従業員情報をリストに表示させます。全体像から知りたい情報は大抵は引き出せます。更に詳しい情報は「詳細」ボタンより表示させたり、必要に応じて編集作業も出来る仕組みになっています。 |
5. まとめ
この設計の利点は、VBAがわからない後継者でもマクロのデザイン画面でパスワードを容易に変更できるメンテナンス性にあります。利便性と安全性のバランスを、標準機能の組み合わせだけで実現した形です
本サイトではマクロを用いた構築手順を中心に紹介していますが、決してマクロを唯一の正解として推奨しているわけではありません。VBAが扱える環境であれば、より多彩で柔軟なプログラムが組めるVBAでの構築をむしろ推奨したいと考えています。
ここでマクロという選択肢を提示しているのは、VBAにハードルを感じている方への「もう一つの入り口」として、また将来的な後継者への引き継ぎ負荷を抑えるという実務上のメリットを考慮してのことです。設計の考え方の一つとして、状況に合わせて活用してください。