Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Excel 2016)
バーコードを使った出席管理(自動で登録)
投稿日時: 21/01/14 17:30:33
投稿者: hidey_g

エクセルを使用した入室管理を考えています。
シートは、
 @入力シート
  ・個人コード
  ・入室時間
 A集計シート
の二つを用意しています。
現在、@の入力シートで個人コードセルでバーコードを利用し個人コードを入力し、
   マクロを割り当てたボタンを押すことでA集計シートへデータがコピーされるようになっています。
ただ、現在の実態を考えた時、バーコードリーダーを通して、マウスなどでボタンを押すという行為をすることが、コロナ感染のリスクを考えた時に、個人個人が行うことはリスクが高いと考えました。
(現在は、入室時にバーコードで入力し、マクロによりマウスで登録をしている)
 
このリスクを低減するために、コンビニレジにあるような常時レーザー照射型のバーコードリーダーに切り替え、バーコードをリーダーに通すと自動で登録するようなシステムにしたいのですが、うまくいきません。
 
読込完了 → 自動で登録
 
といった風にするためには、どのようにしたらよいかご教授ください。

回答
投稿日時: 21/01/14 22:42:53
投稿者: WinArrow
投稿者のウェブサイトに移動

>現在は、入室時にバーコードで入力し、マクロによりマウスで登録をしている)
  
イメージはわかりますが、
 
バーコードを読み込みこませた後、
[Enter]を押すか、ボタンをクイックする
などの操作を行ていると思います。
バーコードを読みこんだだけで、マクロが動いていないので、
今回の質問になったと推測します。
 
[Enter](または、[Tab])は、バーコード側で設定することができる
らしいが、それに対応しているのでしょうか?
バーコードはキーボード入力の代替手段なので
[Enter]でマクロで自動起動するには、
Worksheet_Changeイベントを使えばよいだけです。
 

回答
投稿日時: 21/01/14 22:46:27
投稿者: ふるふる
投稿者のウェブサイトに移動

入室の際に、入口にPCとバーコードリーダーが置いてあって、入室者はバーコードの記載されたカード(読み取れるならカードである必要はありませんが)を読み取ってもらって入室、という流れですね。
 
エクセルでやるならユーザーフォームでバーコードリーダーの値を入力するためのテキストボックスを用意しておき、バーコードリーダーの設定で読取りの最後に改行コードを付加するようにしたらどうでしょう。
 
バーコードリーダーがバーコードを読み取るとテキストボックスにテキストが設定されて改行コードまで入力されます。改行でテキストボックスからExitイベントが発生する(あるいは改行でデフォルトのコマンドボタンのクリックイベントが発生でもいいですね)ようになります。
で、イベントの中で入室処理を行う。
 
ほかにもタイマーイベントを使う方法とかもあるでしょうけど、タイマーだとPC負荷が高くなってよくないかも。
 

回答
投稿日時: 21/01/14 23:24:26
投稿者: WinArrow
投稿者のウェブサイトに移動

ユーザーフォームのテキストボックスでしたら
キーボードイベントで改行キーなしでも、現マクロを起動できますね・・・・

回答
投稿日時: 21/01/16 09:13:48
投稿者: mattuwan44

バーコードリーダーのメーカーに相談してみては?
 
https://www.a-poc.co.jp/howto/howto_faq14.html

回答
投稿日時: 21/01/16 11:46:17
投稿者: WinArrow
投稿者のウェブサイトに移動

WinArrow さんの引用:
ユーザーフォームのテキストボックスでしたら
キーボードイベントで改行キーなしでも、現マクロを起動できますね・・・・

 
キーイベントは推奨されていないようですが、
応用すれば、対応できます。
例えば、最大桁数になるまで、スキップし、最大桁になったら、別プロシジャ起動
というようン応用はできると思います。

トピックに返信