Excel VBAでログイン画面を実装する方法を紹介します!

Excel

みなさん,こんにちは.
シンノユウキ(@y_stadio)です.

Excel VBAでは,ユーザーフォームなどを活用することでユーザーが便利に使用できる様々なを処理を行うことができます.今回はIDとパスワードを入力しないとブックが表示されない「ログイン機能」を実装したいと思います.

ではいきましょう!

完成形はこんな感じ!

はじめに完成形をお見せしたいと思います.ログイン機能の実装されたブックを開くと,以下のようにブックは表示されずにユーザーフォームだけが表示されます.

 

IDとパスワードが一致→ブックが表示される!

そして,予め設定しておいたIDとパスワードが一致した場合,以下のようにブックが表示されるという仕組みになっています.

 

IDとパスワードが不一致→表示されない!

もしIDとパスワードが一致しない場合,ブックは表示されません.

ユーザーフォームの☓ボタンで閉じようとすると,ブックまで同時に閉じられる仕組みになっています.

 

コードはこちら!

では早速,コードを紹介します.まずはユーザーフォームから.なお,今回紹介したユーザーフォームは,こちらからDLできますので,ぜひご利用ください.

ユーザーフォームは,login.frmファイルに格納されています.それをインポートすることで,オブジェクト名をつけなおしたりといった作業も不要になりますので,ぜひ活用してください.

ではコードはこちらです.

ワークシートにIDとパスワードのリストを入力しています.そのワークシートのオブジェクト名を wsData に変更しています.1列目がID,2列目がパスワードです.

なお,以下のコードをThisWorkbookのonOpenのコードとして貼り付けると,前述のようにブックを開いた際にフォームのみを開くことができます.

 

注意点

IDとパスワードの管理が面倒

もし本Excelファイルを複数の人にコピーして配布する場合,新規にIDを追加したりする場合はそれぞれのファイルに追記しなければなりません.ですので,かなり面倒な作業になってしまいます.

 

第三者に見られる可能性もある!

IDとパスワードが一致しないとブックが開けないため,一見するとIDとパスワードをしらない第三者には覗かれないと思われがちですが,いくつか抜け道があり,完全にロックすることはできません.ですので,ゆるーくログイン機能を実装したい場合はこちらで問題ありませんが,そうでない場合は使用をオススメしません.

 

まとめ

今回はExcelVBAでログイン機能を実装する方法を紹介しました.使い所は限られそうですが,少し変更して使うともしかしたら良い働きをしてくれるかもしれませんね.