-PR-

締切り済みの質問

質問No.5831804
暇なときにでも
暇なときにでも
お気に入り投稿に追加する (0人が追加しました)
回答数3
閲覧数1152
エクセルによる照合と警告音
エクセルとバーコードリーダーによって、在庫管理をしようと考えています。バーコードリーダーには、スキャンによって値が入力されるとPC上でtabキーを押す、という機能があるので、エクセルにリーダーで読み込んだ値が入力されたあと、次のセルに移動することができます。ですので、商品のバーコードを次々に読んでいって、エクセルのシート上にデータを蓄積させていきます。
この蓄積される行をsheet1につくった一覧表からcountif関数でチェック(shhet2にバーコード数値=商品名のリストがある)し、どの商品が何個あるかを数えていくようにしています。
=COUNTIF(10:10,Sheet2!D7)・・・(リーダーから入力される値が入る行:元リスト)

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

以上、よろしくお願いします。
投稿日時 - 2010-04-17 11:21:35

回答 (3)

回答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で検索すると勉強のためのサイトがいくつもあります。
一度、根気強く勉強してもらうと、将来にも役にたつと思います。
投稿日時 - 2010-04-27 20:39:21
この回答を支持する
(現在0人が支持しています)
回答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(音を出す)
といったような流れです。
後は、ご自身のシートにあわせて編集してみてください。
投稿日時 - 2010-04-17 22:25:46
この回答を支持する
(現在0人が支持しています)
お礼
お返事が遅れて申し訳ありませんでした。
回答をいただいて、すぐに試してみたのですが、リストにある値でもBeep音が鳴ります…
でも、値は正しいのでcountifを入れている方のリストは数字がカウントされていきます。
VBAはさっぱりわからなかったので、いろいろ調べてみましたが、いまだ解決できません。
あまり長い間返答なしも失礼かと思いましたので、いったんお礼を申し上げようとコメントいたしました。
具体的な例もあげずに質問したのに、ご回答いただきありがとうございました。
投稿日時 - 2010-04-25 17:18:24
回答No.1
今一、良くわからないのですが
>バーコードから入力される値が→Sheet2のB2~F7の入力される値?
>元リストにあるかどうかを照合し→Sheet1のどこにあるのでしょうか?
>リストに無い値が読み込まれた場合にエクセル上で警告音を鳴らす
→VBAの力を借りて出来ます。
添付画像のどこにバーコードの値が入って、検索する範囲がどこなの補足してください。
投稿日時 - 2010-04-17 15:32:43
この回答を支持する
(現在0人が支持しています)
補足
言葉足らずというか説明が変で申し訳ありませんでした・・・
・バーコードから入力される値
絵が小さくて見えにくいですが、Sheet1のA10から右に続いています。バーコードのトリガーを押すたびに、バーコードを読む→エクセルのA10に値が入る→自動でB10がアクティブに→次のバーコードを読む・・・という動作をしています。

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

たとえば、バーコードをスキャンし、バーコードの数値がエクセルのSheet1のA10に162300017004と入ったとします、Sheet2の「黄/17.0」という元リストの数値と符合するので、Sheet1の「黄/17.0」に1がカウントされます。
投稿日時 - 2010-04-17 15:50:07
この質問は役に立ちましたか?
5人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

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

同じカテゴリの人気Q&Aランキング

カテゴリ
その他MS Office
-PR-
-PR-
-PR-

特集

試写会に30組60名様をご招待!

お城、ボート、ツリーハウス、ユニークな物件満載!

親同士が気軽に情報交換できるコミュニティです。

同じカテゴリの人気Q&Aランキング

カテゴリ
その他MS Office
-PR-

ピックアップ

-PR-