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から入力したいです。
という方法だと記録が残らず、対応方法がありません。従って、この方法はお勧めできません。
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(エクセル)
-
エクセルによる照合と警告音
その他(Microsoft Office)
-
-
4
エクセルマクロでバーコードを読みたい
Excel(エクセル)
-
5
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
6
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
7
バーコードリーダーを使ってフォーム入力する方法
その他(ソフトウェア)
-
8
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
9
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
10
エクセルへバーコードリーダーから入力
会計ソフト・業務用ソフト
-
11
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
12
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
13
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
14
エクセルのVBA 特定のセルでエンターキーでマクロ実行
Excel(エクセル)
-
15
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
16
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
17
値を入力後、自動的にアクティブセルが移動するマクロ
Excel(エクセル)
-
18
エクセル、条件を満たしたら音を鳴らす方法教えて下さい
Excel(エクセル)
-
19
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
20
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
VBAにて『元に戻すボタン』を作...
-
VBAバーコード照合 バーコード...
-
Excel VBAでのWorksheet_Change...
-
電話番号の入力方式が違うデー...
-
VLOOKUPの列番号の最大は?
-
マクロの「SaveAs」でエラーが...
-
VBAで色の付いているセルの行削除
-
Worksheets メソッドは失敗しま...
-
ワイルドカード「*」を使うとう...
-
AのセルとB行を比較して、一致...
-
エクセルVBAが途中で止まります
-
VBA 空白行に転記する
-
[EXCEL]ボタン押す→時刻が表に...
-
(マクロ)データをAブックからB...
-
エクセルVBA 配列からセルに「...
-
エクセルで離れた列を選択して...
-
VBAマクロ実行時エラーの修正に...
-
「段」と「行」の違いがよくわ...
-
VBA シート名が一致した場合の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
VBAにて『元に戻すボタン』を作...
-
select caseの入れ子
-
VBAバーコード照合 バーコード...
-
vbs 文字位置を中央に
-
xlookup関数の引数を利用して検...
-
エクセルで選択したセルがディ...
-
スペース区切りのAND検索
-
ASPでバイナリ(ビッグエンディ...
-
半透明ブラシ重ね塗りのアルゴ...
-
エクセルで特定の文字列が入っ...
-
VBAマクロ実行時エラーの修正に...
-
マクロの「SaveAs」でエラーが...
-
VBA シートをコピーする際に Co...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで離れた列を選択して...
-
Worksheets メソッドは失敗しま...
-
VLOOKUPの列番号の最大は?
-
Excelで、あるセルの値に応じて...
おすすめ情報