- ベストアンサー
エクセルVBAで重複入力を防ぐ方法は?
- エクセルVBAを使用して、重複入力を防ぐ方法を教えてください。
- データ入力時に重複がないようにチェックするプログラムをVBAで作成したいです。
- エクセルの入力規制では再試行が選択されてしまうため、PC画面を見ずに重複入力を防ぐ方法を知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
バーコードの入力方式が分かりませんが、昔あったタイプの、PS/2端子に接続するテンキーエミュレート型の物と仮定しますね。 そうすれば、バーコードを読み込むときに、テンキー(もしくはキーボード)で任意の文字列を打ち込んでEnterキーを押すという動作と同様の信号をバーコードリーダーが出しますので、Excel側としては普通にセルへの入力を受け付けたのと同じであるということになりますので、ExcelのVBAとしては、Worksheet_Change というイベントでバーコード入力があったことを取得できるはずです。 したがって、以下のソースを目的のシートに入れて下さい。 Private Sub Worksheet_Change(ByVal Target As Range) Dim SameChk As Boolean SameChk = True If Target.Row > 1 Then For i# = 1 To Target.Row - 1 If Target.Value = Target.Offset(RowOffset:=i - Target.Row) Then SameChk = False Exit For End If Next i If SameChk = False Then Target.Value = Empty Target.Activate End If End If End Sub 232Cタイプのものであったり、USBタイプのものであったりしても同様です。バーコード入力があった時点で発生するイベントの中に上のソースを貼り付けてください。ただしその場合、もしかしたら、 Target.Activate の部分を、 Target.Offset(RowOffset:=1).Activate とする必要があるかもしれません。
お礼
早速できました! 本当にありがとうございます。完璧です! なんと御礼申し上げてよいか分からないくらい 本当に助かりました。