![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
No.2です。
前回回答のコードにタイプミスがありました。お詫びして訂正いたします。
If Target.Offset(0, -2).Value And Target.Offset(0, -1).Value And Target.Offset(0, -1).Value = Target.Value Then
の部分を
If Target.Offset(0, -2).Value = Target.Offset(0, -1).Value And Target.Offset(0, -1).Value = Target.Value Then
に修正してください。
No.2
- 回答日時:
ご質問者の説明で不明な点があります。
>例えばa1に271、二つ目を読み込むと違うデータを読み取りb1にs@271、
>三つ目を読み込みまた、c1にd@271と読み込んだとします。
>その場合a1,b1,c1が全く同じデータの場合照合OKとし・・・・・
上記の例示では「271」という数字部分のみ一致していますが、これを「全く同じデータ」と呼ぶのでしょうか?
そうではなく、英文字、記号、数字など全ての文字が一致しているものを「全て同じデータ」と呼ぶのでしょうか?
だとすれば、上記のデータは「同じデータではない」ということになりますが、「271」の部分が一致した例を示した意味はなんでしょうか?
という疑問は残りますが、一応、ご質問者の例示は「同じデータではない」という前提でVBAサンプルを作成してみました。
EXCELのオプションの詳細設定で「ENTERキーを押したらセルを移動する」で「方向」を「右」に指定します。
バーコードリーダーは読込後に「ENTER」キーコードを発行するよう設定できるものが多いので、上記設定でバーコードを読むとセルが右に移動するようになります。
No.1さんの回答にある
>セルを全て保護しておけば、自然とC1セルの次は、A2に 移動するかと。
を当方で試してみました。保護すると入力はできませんが、入力できないセルへ移動してしまうようです。
そこで、C列からA列の次の行に移動させるために、A列からC列を「テーブル」にしてみました。「テーブル」では1行目は「見出し」です。
sheet1に添付画像のようにA~C列にテーブルがあり、A2から入力スタートすることとします。A2⇒B2⇒C2⇒A3⇒B3⇒C3⇒A4・・・という進み方になります。
sheet1にWorksheet_Changeという名前のプロシージャを作って、以下のコードを記述します。(64ビットのバージョン用です)
Private Declare PtrSafe Function BeepAPI Lib "kernel32.dll" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C:C")) Is Nothing Then
Exit Sub
Else
If Target.Offset(0, -2).Value And Target.Offset(0, -1).Value And Target.Offset(0, -1).Value = Target.Value Then
Call BeepAPI(785, 800)
'MsgBox "3つのセルの一致を確認しました"
End If
End If
End Sub
sheet1のD列にはA列、B列、C列に読み込まれたバーコードの値が一致しているかをチェックし、一致なら「〇」、不一致なら「×」を表示する数式
=IF(C2="","",IF((A2=B2)*(B2=C2),"〇","×"))
をD2に入れて、下方向へコピーしてあります。
これで、上記のVBAと併せて、バーコードで読み込んだ結果3つのセルが一致していれば、ビープ音が鳴り、D列に「〇」が表示されます。
----余談----
以下は、EXCEL VBAとは関係のない工程管理の話です。興味がなければスルーしてください。
ご質問者は
>バーコードを読み取るとセルに入力され・・・
とおっしゃっていますが、そもそも、「バーコードは何に表示されている」のでしょうか?
仮に、商品や製品にバーコードが表示されているとして、3つが同じであることをチェックする意味は何なのでしょうか?
A1セル、B1セル、C1セルにその記録を残しておく必要はないのでしょうか?
常識的な 工程管理なら、「チェックする」のであれば、その「照合記録」を残しておくのは当然と考えられます。
例えば、
(1)「音」を鳴らして確認していたが、「音が鳴った気がした」という人的ミスでチェックをすり抜けてまった
(2)3つセットで読み込むはずが、1セット飛ばして次のセットに進んでしまい、チェック漏れが発生した
というような問題は、記録を残しておけば、後でシートをチェックすれば直ぐに発見できます。つまり、(1)のケースはA列、B列、C列のいずれかが不一致のはず(添付画像で言えばD列が×ですし、(2)の場合は総件数がチェック済み件数と不一致(添付画像で言えば見出し行を除いた行数が製品(商品)セット数(3つでワンセット)と不一致)となるからです。
これを、ご質問者の例示のように、
>移る時は前のデータを削除し、またa1から入力したいです。
という方法だと記録が残らず、対応方法がありません。従って、この方法はお勧めできません。
![「VBAバーコード照合 バーコードリーダー」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/f/142736_61b9e1699b771/M.png)
No.1
- 回答日時:
おはようございます。
バーコード入力だと、入力後、下のセルに移動するかと。
イベントのChange
https://tonari-it.com/excel-vba-event-worksheet- …
IFで、データが同じかをチェック
4行目以降のセルを全て保護しておけば、自然とC1セルの次は、A2に
移動するかと。
若しくは、イベントで、3つデータが入力されたら、セルをクリアする。
音を鳴らす
http://www.start-macro.com/55/w/s077.html
取り敢えず、上記を組み合わせ、マクロを組んでみては?と思います。
不明な点は、コードをアップし、躓いている点を書けば、きっと回答が
あるかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 入力と同時に桁数を詰める 3 2022/09/11 20:23
- Excel(エクセル) 日本語向きの“ダブルクオーテーション”の入力 1 2022/10/16 11:33
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) Excel 数式を教えてください 2 2022/06/02 12:24
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- その他(コンピューター・テクノロジー) バーコードリーダーで2桁の数字を読み込むにはどうすればいいですか? 1 2023/03/10 16:22
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelで教えてください。 バーコードリーダーで読み込みしたあと セルを自動で次のセルに行くように
Excel(エクセル)
-
Excelでバーコードリーダーで読み込ませた場所に移動して日時を表示させる方法。
Excel(エクセル)
-
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
-
4
エクセルによる照合と警告音
その他(Microsoft Office)
-
5
エクセルマクロでバーコードを読みたい
Excel(エクセル)
-
6
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
7
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
8
バーコードリーダーを使ってフォーム入力する方法
その他(ソフトウェア)
-
9
エクセルへバーコードリーダーから入力
会計ソフト・業務用ソフト
-
10
エクセル、条件を満たしたら音を鳴らす方法教えて下さい
Excel(エクセル)
-
11
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
12
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
13
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
14
Excelのマクロでボタンを押すと数が1足されるようにするには?
IT・エンジニアリング
-
15
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
16
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
17
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
18
未記入がある場合はマクロを実行させない方法
その他(Microsoft Office)
-
19
バーコードコントロールが印刷時に反映されない
Excel(エクセル)
-
20
バーコードリーダーの読込データを画面表示する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
エクセルで選択したセルがディ...
-
select caseの入れ子
-
VBAにて『元に戻すボタン』を作...
-
C++で、b[bit]の非負整数(例え...
-
エクセル マクロ オートフィ...
-
VBAマクロ実行時エラーの修正に...
-
B列の最終行までA列をオート...
-
VBA シートをコピーする際に Co...
-
エクセルで離れた列を選択して...
-
エクセルVBA 配列からセルに「...
-
VLOOKUPの列番号の最大は?
-
エクセル2016で時間を入力して...
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
LEFT関数とIF関数の組み合わせ...
-
vbaで指定したセルより下の行を...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
エクセルで特定の文字列が入っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
VBAにて『元に戻すボタン』を作...
-
vbs 文字位置を中央に
-
select caseの入れ子
-
VBAバーコード照合 バーコード...
-
エクセルで選択したセルがディ...
-
指数関数近似を行うプログラム...
-
セルに入ってる数式を他のセル...
-
ある一定時間の最高値と最小値...
-
C++で、b[bit]の非負整数(例え...
-
xlookup関数の引数を利用して検...
-
スペース区切りのAND検索
-
エクセル インデックスを用い...
-
アセンブラでの記述について教...
-
VBAマクロ実行時エラーの修正に...
-
Worksheets メソッドは失敗しま...
-
マクロの「SaveAs」でエラーが...
-
エクセルで特定の文字列が入っ...
-
エクセルで離れた列を選択して...
-
B列の最終行までA列をオート...
おすすめ情報