pickup

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

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

 

 

目次

スポンサーリンク

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

 

こんにちは。伊川(@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関数を利用したほうが、カンタンですね。

 

 

ここがポイント

 

ここがポイント
Function8.png
今回は、コピペ以外させないというコードを紹介しました。
別に意地悪をしているわけではありません。
正確性を保持するためのものです。
なんでも、入力できるのは、処理スピードが、向上します。
しかし、データベースは、なんと言っても、正確性が要求されます。
処理スピードが、向上しなくても、開発側は、正確性の重点を置くべきです。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

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

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

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

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

今回のサンプルファイルは、No278です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

初心者でも、すぐに、集計、プレゼンができるようになる。書籍だけの勉強は今すぐやめよう!
電子書籍で、AMAZON1位
専門のスタッフが、電話、チャットで完全サポート
大手パソコンスクールよりも、圧倒的な低価格
スポンサーリンク

Twitterでフォローしよう

おすすめの記事