見出し画像

【ACCESS VBA】コピペしかさせない 個人情報の誤登録を無くせ

YoTubeでも解説しています。是非ご覧ください。


世間様では、右クリック禁止、コピペ禁止等のコードはよく見かけるのですが、

コピペしかさせないというコードは、なかなか見かけないですね。



コピペしかさせない 個人情報の誤登録を無くせ


こんにちは。伊川(@naonaoke)です。

 

 

また、新しく会社でシステムを作成することになりました。

個人情報の誤登録は、結構ありがちなミスです。

 

このご時世、情報の取り扱いには、気を付けなければなりません。

できるだけ正確にではありません。

 

絶対に正確にです。

 

郵便物が、他人に届くと、本当に困ってしまいます。

 

私の会社の場合は、WEB上に個人情報を、管理すシステムがあります。

その情報を、手入力されると、絶対に、入力ミスがあります。

 

確率的には、1,000件に1件あるか、無いかです。

 

しかし、目的は、撲滅です。

 

絶対にあってはならないミスなのです。

 

 

このブログはこんな人にお勧め


個人情報登録のミスをなくしたい人

ACCESSのVBAを勉強している人

VBAでキーボードの操作をしたい人

 


このブログを、読み終わるころには・・・・



今回のコードは、とてもカンタンです。

少しコードが長くなりますが、その辺は、Function等で短くすることができると思います。

Functionよりも、個人情報誤登録防止に重点を置きました。


VBAでキーボードを操作する

 

VBAを記載して、空を飛ぶこことはできません。

しかし、Excelという媒体を利用して、ある程度なんでもできるのが、すごいところです。

VBA初心者の頃は、キーボードを、VBAで操作できるなんで、思ってもいませんでした。

しかし、勉強していくと、できるようになるもんですね。

ではコードを解説します。

 

VBAでキーボードを操作する 作業手順 その1 コピペしかさせないコード

まず、コピペしかさせたくないテキストボックスを選択して、キークリック時に、イベントが発生するようにします。

記載するのは、下記のコードです。

VBAで、キーボードを、操作する場合は、色々な方法があるのですが、今回は、KeyCodeを利用します。

これだけで完成です。

この、コードを仕込むと、貼り付け、つまり、Ctrl+V以外の操作は、受け付けません。

めでたし、めでたし

VBAでキーボードを操作する 作業手順 その2 不評が続出

 

もし、間違えて、貼り付けたらそうすんだ!

 

そのような、不平がたくさん来ました。

いや、ごもっとも!

システムを作成するときは、エンドユーザーのことを考えましょう。

しかし、貼り付けるデータを間違える時点で、緊張感がないですけどね。

 

VBAでキーボードを操作する 作業手順 その3 コードを修正する

KeyCode=8は、BackSpaceキーを意味します。

KeyCode=13は、Enterキーを意味します。

これで、完璧です。

つまり、Ctrl+V、BackSpace、Enter以外の操作はできません。

 

VBAでキーボードを操作する 作業手順 その4 個人情報を貼り付ける


今回は、昭和46年1月26日という、データから、0126という値を、取り出します。

テキスト0の更新後処理に下記のコードを仕込みます。

WEB上で、コピーをすると、余計なスペース、改行コードが、入ります。

したがって、Trim関数、Peplace関数、Nz関数を利用して、値を整形します。

Enterキーを、押します。

0126を、抽出できました。

以前は、4桁の文字列でなければ、登録できないようにしていました。

しかし、結果的には、4桁以外は、登録させないといっても、欲しいのは、正確な値なので、桁数で制限をするのは、無駄でした。

 

余談 Nullの使い方が不正ですの対処方法

上記のコードに関しては、Nz関数があるかないかです。

なぜ、このエラーが発生するかというと、String型の初期値は、””なのです。

Nullは、カンタンといと、どのデータ型にも属さないと言えば、カンタンかもしれません。厳密には、違いますけどね。

だから、テキスト0が、Nullになった場合、テキスト0は、string型なので、Nullの使い方が不正です。となります。

このエラーを回避するために、Nz関数を利用して、Nullを””に変更します。

また、変数を利用しているときは、String型ではなく、Variat型へ、変更することで、回避できます。

これで本当に完璧になります。

iif関数を利用して、条件判定をするよりも、Nz関数を利用したほうが、カンタンですね。

 

ここがポイント


今回は、コピペ以外させないというコードを紹介しました。

別に意地悪をしているわけではありません。

正確性を保持するためのものです。

なんでも、入力できるのは、処理スピードが、向上します。

しかし、データベースは、なんと言っても、正確性が要求されます。

処理スピードが、向上しなくても、開発側は、正確性の重点を置くべきです。

まとめ


今回は、データベースの正確性を保つものです。

入力で制限を付けることで、入力側にも、緊張感が生まれます。

正確なデータベースを、保ちましょう。

今回も最後まで読んでいただきありがとうございました。

ファイル販売

私のホームページでも販売しています。
このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。
10,000件超えてから、面倒なので、カウントしていないです。

勉強したい方、会社の実務で利用したい方にお勧めです。

はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。

まして、ネットのコードは、作動するとは限りません。

料金は、200円です。

よろしくお願いします。
今回のサンプルファイルは、No278です。

ここから先は

56字

¥ 200

よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。