• ベストアンサー

キーボードの数字キー及びテンキーを無効にするマクロ

お世話になります。上記質問タイトルに付きましてご質問させていただきます。 環境は、windowsXP、Excel2003です。 取扱い商品の物流を管理しているエクセルシートで、バーコードを読み込ませて商品コードを入力し、データ入力しています。 パートやアルバイトに入力操作をお願いしているのですが、キーボードの手入力のほうが入力しやすいらしく、手入力でデータ入力しているようです。ところが間違って入力していることがあり、キーボードの数字キーを無効にしたいと思いました。 少し調べたところ↓ -------------------------------------- Sub Keyboard09Off() For i = 44 To 90 Application.OnKey Chr(i), "" Next i End Sub -------------------------------------- このマクロで数字キーは無効になるのですが、まだテンキーは有効で さらに調べたところ↓ -------------------------------------- Sub Keyboardtenkey09Off() For i = 97 To 105 Application.OnKey Chr(i), "" Next i End Sub -------------------------------------- 自分では、これでテンキーが無効になると思ったのですが、うまくいかず。 どこが間違っているのでしょうか? 詳しい方いらっしゃいましたら、何卒ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmmk16
  • ベストアンサー率46% (32/69)
回答No.1

0~9までを無効にしています For i = 96 To 105 Application.OnKey "{" & i & "}", "" Next i

sakura_002
質問者

お礼

ご教授頂きありがとうございます。 kmmk16様 せっかくお教え頂きましたが、こちら側のハードウェア的な都合で活用できなかった事、大変残念に思います。 mt2008様 商品コードの入力だけでなくその他の入力の際、数字キーを多用することがあり、外してしまうことは難しそうです。 再度、入力作業時には、バーコードリーダーを使用してもらう様、教育したいと思います。 ありがとうございました。

sakura_002
質問者

補足

kmmk16様 ご回答ありがとうございます。 テンキーも無効になりました。 ところが、数字キー・テンキーを無効にすると、バーコードリーダーも無効になってしまいました。 おそらく、バーコードリーダー自体がUSB接続で、コントロールパネル上ハードウェアとしてはキーボードの扱いになっており、リーダーで読み取ったデータは、バーコードリーダー専用のソフトが動いているわけではなく、キーボードの信号として入力され動作しているようなので、マクロにて数字キー・テンキーの入力を無効にすると、バーコードリーダーも無効になっているような気がします。 解決の方法が全く思いつかず、あきらめようと思ってますが、何かいいお考えがある方いらっしゃいましたら、ご連絡いただけないでしょうか? よろしくお願いいたします。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

まったくソフトウェア的な解決方法ではないのですが、キーボードの数字キーのキートップを外してしまってはいかがですか? バーコード以外で数字を打つ必要が有る場合は、他のキーボードを繋ぐか、スクリーンキーボードを使うことにします。 他のキーボードを使う場合は、管理者が貸し出す方式にすればバーコード入力の代わりに使う事もないでしょうし、スクリーンキーボードならバーコードで入力させた方が早いので、バーコード入力を使うようになると思います。