総ありがとう数 累計4,290万(2014年11月1日現在)

毎月4,000万人が利用!Q&Aでみんなで助け合い!

-PR-
Yoiyami747

エクセルとバーコードリーダーによって、在庫管理をしようと考えています。バーコードリーダーには、スキャンによって値が入力されるとPC上でtabキーを押す、という機能があるので、エクセルにリーダーで読み込んだ値が入力されたあと、次のセルに移動することができます。ですので、商品のバーコードを次々に読んでいって、エクセルのシート上にデータを蓄積させていきます。
この蓄積される行をsheet1につくった一覧表からcountif関数でチェック(shhet2にバーコード数値=商品名のリストがある)し、どの商品が何個あるかを数えていくようにしています。
=COUNTIF(10:10,Sheet2!D7)・・・(リーダーから入力される値が入る行:元リスト)

お尋ねしたいのは、バーコードから入力される値が、元リストにあるかどうかを照合し、リストに無い値が読み込まれた場合にエクセル上で警告音を鳴らすようにできないのか?という事です。
小型のノートPCでこのエクセルを動かし、肩掛けかばんに入れてバーコードリーダーだけ手元に。という事を考えているので、警告ダイアログ等は出さす、音だけで知らせるようにしたいのです。

以上、よろしくお願いします。
  • 回答数3
  • 気になる数0

Aみんなの回答(全3件)

回答 (全3件)

  • 2010-04-17 22:25:46
  • 回答No.2
例えばSheet1の名前のタブを右クリック、コードの表示
VBエディターが起動したら
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Row = 10 Then
Set c = Sheets("Sheet2").Range("B2:H8").Find(What:=Target.Value, LookIn:=xlValues, _
LookAt:=xlWhole)
If c Is Nothing Then Beep
End If
End Sub
を貼り付けして閉じてみてください。
VBAの動作を説明すると
Sheet1の10行目が変更されたら
Sheet2のB2:H8の範囲を検索、変更された値が検索値
もし、検索して何も見つからなければ Beep(音を出す)
といったような流れです。
後は、ご自身のシートにあわせて編集してみてください。
お礼コメント
お返事が遅れて申し訳ありませんでした。
回答をいただいて、すぐに試してみたのですが、リストにある値でもBeep音が鳴ります…
でも、値は正しいのでcountifを入れている方のリストは数字がカウントされていきます。
VBAはさっぱりわからなかったので、いろいろ調べてみましたが、いまだ解決できません。
あまり長い間返答なしも失礼かと思いましたので、いったんお礼を申し上げようとコメントいたしました。
具体的な例もあげずに質問したのに、ご回答いただきありがとうございました。
投稿日時 - 2010-04-25 17:18:24
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 2010-04-27 20:39:21
  • 回答No.3
>回答をいただいて、すぐに試してみたのですが、リストにある値でもBeep音が鳴ります…
う~ん、何故でしょうね?
ちなみに新しいブックで
Sheet2
A B
ABC
DEF
GHI
とでも準備して
Sheet1の名前のタブ、コードの表示で
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Set c = Sheets("Sheet2").Range("A1:A8").Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
MsgBox Target.Value & "はありません"
Else
MsgBox Target.Value & "は" & c.Address
End If
End Sub

を貼り付けて、適当なセルに ABC と入れた場合、ZZZと入れた場合で実験してみてください。
Sheets("Sheet2").Range("A1:A8").Find(What:=Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
のTerget.ValueはSheet1の変更があったセルの値(本番では、バーコードで入力した値)
Sheet2のA1~A8を検索して
If c Is Nothing Then は もし見つからなければ 
という分岐です。
見つかったら音を出すということなので、VBAの力を借りないと出来ません。
エクセルVBAで検索すると勉強のためのサイトがいくつもあります。
一度、根気強く勉強してもらうと、将来にも役にたつと思います。
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 2010-04-17 15:32:43
  • 回答No.1
今一、良くわからないのですが
>バーコードから入力される値が→Sheet2のB2~F7の入力される値?
>元リストにあるかどうかを照合し→Sheet1のどこにあるのでしょうか?
>リストに無い値が読み込まれた場合にエクセル上で警告音を鳴らす
→VBAの力を借りて出来ます。
添付画像のどこにバーコードの値が入って、検索する範囲がどこなの補足してください。
補足コメント
言葉足らずというか説明が変で申し訳ありませんでした・・・
・バーコードから入力される値
絵が小さくて見えにくいですが、Sheet1のA10から右に続いています。バーコードのトリガーを押すたびに、バーコードを読む→エクセルのA10に値が入る→自動でB10がアクティブに→次のバーコードを読む・・・という動作をしています。

・元リストにあるかどうかを照合
Sheet2が元リストです。縦が商品の種類・横が商品のサイズです。

たとえば、バーコードをスキャンし、バーコードの数値がエクセルのSheet1のA10に162300017004と入ったとします、Sheet2の「黄/17.0」という元リストの数値と符合するので、Sheet1の「黄/17.0」に1がカウントされます。
投稿日時 - 2010-04-17 15:50:07
通報する
  • 同意数0(0-0)
  • ありがとう数0
  • 回答数3
  • 気になる数0
  • ありがとう数5
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください

関連するQ&A

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する

あなたの悩みをみんなに解決してもらいましょう

  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
-PR-
-PR-
-PR-

特集

専門医・味村先生からのアドバイスは必見です!

関連するQ&A

-PR-

ピックアップ

  • easy daisy部屋探し・家選びのヒントがいっぱい!

-PR-
ページ先頭へ