• 締切済み

エクセルによる照合と警告音

エクセルとバーコードリーダーによって、在庫管理をしようと考えています。バーコードリーダーには、スキャンによって値が入力されるとPC上でtabキーを押す、という機能があるので、エクセルにリーダーで読み込んだ値が入力されたあと、次のセルに移動することができます。ですので、商品のバーコードを次々に読んでいって、エクセルのシート上にデータを蓄積させていきます。 この蓄積される行をsheet1につくった一覧表からcountif関数でチェック(shhet2にバーコード数値=商品名のリストがある)し、どの商品が何個あるかを数えていくようにしています。 =COUNTIF(10:10,Sheet2!D7)・・・(リーダーから入力される値が入る行:元リスト) お尋ねしたいのは、バーコードから入力される値が、元リストにあるかどうかを照合し、リストに無い値が読み込まれた場合にエクセル上で警告音を鳴らすようにできないのか?という事です。 小型のノートPCでこのエクセルを動かし、肩掛けかばんに入れてバーコードリーダーだけ手元に。という事を考えているので、警告ダイアログ等は出さす、音だけで知らせるようにしたいのです。 以上、よろしくお願いします。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答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で検索すると勉強のためのサイトがいくつもあります。 一度、根気強く勉強してもらうと、将来にも役にたつと思います。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答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(音を出す) といったような流れです。 後は、ご自身のシートにあわせて編集してみてください。

Yoiyami747
質問者

お礼

お返事が遅れて申し訳ありませんでした。 回答をいただいて、すぐに試してみたのですが、リストにある値でもBeep音が鳴ります… でも、値は正しいのでcountifを入れている方のリストは数字がカウントされていきます。 VBAはさっぱりわからなかったので、いろいろ調べてみましたが、いまだ解決できません。 あまり長い間返答なしも失礼かと思いましたので、いったんお礼を申し上げようとコメントいたしました。 具体的な例もあげずに質問したのに、ご回答いただきありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

今一、良くわからないのですが >バーコードから入力される値が→Sheet2のB2~F7の入力される値? >元リストにあるかどうかを照合し→Sheet1のどこにあるのでしょうか? >リストに無い値が読み込まれた場合にエクセル上で警告音を鳴らす →VBAの力を借りて出来ます。 添付画像のどこにバーコードの値が入って、検索する範囲がどこなの補足してください。

Yoiyami747
質問者

補足

言葉足らずというか説明が変で申し訳ありませんでした・・・ ・バーコードから入力される値 絵が小さくて見えにくいですが、Sheet1のA10から右に続いています。バーコードのトリガーを押すたびに、バーコードを読む→エクセルのA10に値が入る→自動でB10がアクティブに→次のバーコードを読む・・・という動作をしています。 ・元リストにあるかどうかを照合 Sheet2が元リストです。縦が商品の種類・横が商品のサイズです。 たとえば、バーコードをスキャンし、バーコードの数値がエクセルのSheet1のA10に162300017004と入ったとします、Sheet2の「黄/17.0」という元リストの数値と符合するので、Sheet1の「黄/17.0」に1がカウントされます。

関連するQ&A

  • Windowsで入力値に応じて起動アプリを変更

    職場でバーコードリーダーを使用しています。 受付カウンターにバーコードリーダーを設置し、それをPCに繋げています。 バーコードで読み込んだ値が、Excelのツール上へ入力されるようになっており、順調に動いているのですが、そのExcelツール以外のタスクが選択されていると意味がない状態です。 そこで、バーコードリーダーで特定のバーコードを読み込むと、自動的にExcelのツールが選択される…というようにしたいです。 そういったことは可能でしょうか? Windowsは7です。

  • エクセルマクロでバーコードを読みたい

    こんにちわ! エクセルマクロを使って在庫管理をできるものを作ろうと思っています。 そこで、USBバーコードリーダーなるものを発見したのですが、こういったバーコードリーダーをエクセルマクロを用いて読み取ることは可能でしょうか? 可能なようでしたら、その方法をご教授願います。 また、お勧めのバーコードリーダーがございましたら教えてください。(2次元バーコード(QRコード)リーダーは高いので、今のところ通常のバーコードで考えています)

  • エクセルでバーコードリーダーが使えない

    エクセルを使っていて理由がわからない問題が発生したので、 解決方法をご存じの方がおられましたら教えてください。 社内の在庫管理を行うため UMA-BR-02 という バーコードリーダーを用意しました。 Windows7上のEXCEL2010を使って在庫表を作成し、 読み込んだバーコードのデータをB1セルに入力しています。 バーコード入力後隣のセルに移るように、バーコードリーダー側で 読み取り後TABキーを追加するよう設定しました。 またD1セルにVLOOKUP関数を使って、別シートの商品一覧から B1セルのデータと適合する商品名を表示するようにしています。 EXCEL2010では特に問題なくバーコードの読み込みもできたので、 EXCEL97-2003形式で保存しました。 その後WindowsXPとEXCEL2002が入っている別のPCで、 先ほど作成したファイルを開いてバーコードの読み取りを試したところ、 読み取り完了のブザー音が鳴ってカーソルが隣のセルに移るのですが B1セルの中にはデータが入力されません。 バーコードリーダーの認識がおかしいのかと思ったので、 メモ帳とワードを開いてバーコードを読み込んだところ、 正しいデータが表示されました。 WindowsXPとEXCEL2002が入っているPCは2台ありますが、 両方とも同じ現象が出ています。 WindowsVistaとEXCEL2003が入っているPCでは 正常に動くことを確認できています。 他のソフトではデータが出るため、バーコードリーダー側の問題ではなく、 EXCEL2002の問題ではないかと考えているのですが、 ネットを探してもそれらしい内容が出てこなくて困っています。 エクセルのバージョンアップも考えていますが、経費の掛かることになるので できればそれ以外の方法で解決したいので何かあれば教えてください。

  • バーコード印刷のプリンター

    エクセルフォントのBC39でバーコードを作って印刷していますが、バーコードリーダーで読み取れません。 商品などに印刷されているバーコードは読み取れますのでバーコードリーダーが原因ではないと考えられますが、プリンターがいけないのかエクセルのフォントがいけないのか分かりません。 レーザープリンターもいくつか試しましたが読み取れません。 エクセルで作成したバーコードを読み取れる印刷の方法を教えて頂けますでしょうか 宜しくお願い致します。

  • エクセル 照合とオートフィルについて

    エクセル 照合とオートフィルについて エクセル2007で以下のようなシートが2枚できています。 上段が1枚目(シート1)で下段が2枚目(シート2)です。 2枚のシートの内容は同じなのですが、それぞれ数字と件数が 同じかどうか目視ではなく、関数と条件付き書式で処理できればと 思いました。 シート2の書式だけをシート3に作って、IF関数で処理しようと したのですが、シート3の最初の5行目にすべて数式を入力して それを7行目、8行目にコピーしたのですが、シート1が横に値があるのに対して シート2はとびとびに値があるのでうまくいきません。 1月31日までびっしりデータがあるので、いいやり方があれば教えてください。

  • エクセルで入力規則のあるところに関数などはいれられますか

    カテゴリーよくわかりません。 バーコードで読み取ったものをA列に入力するとき データの入力規則・A列A1,A2,A3…はリスト1から選択 例) A列       リスト1 A1        012345 A2        012346 A3        012347            012348           012349 (ずれがなおりません)                  012350           リスト1の先頭は数字の0がついています。よって、セルの書式表示は文字列です。 リスト1の文字列は6文字ですが、 バーコードをバーコードリーダーなどで読みとりする場合 後ろのほうに必ず余計な数字1つか2つ付いてますよね。 それを読まないでA列に6文字だけ入力することはできないんでしょうか できればバーコードリーダーの設定は変えないで、関数の挿入とかで。 よろしくお願いします。

  • エクセルのマクロについて教えて下さい。

    添付した画像の様な注文管理シートがあります。 バーコードリーダーを使ってバーコードのJANを読み取り、該当する商品を検索したいです。 商品コードは 自社コード/JAN の形式になっています。 入荷した商品のバーコードを読み取ると、該当する商品のD列に読み取った日付を自動的に入力したいです。 その際に、既に入荷している商品はスキップして、未入荷の商品を検索する方法を教えて下さい。 例えば、 JAN 49000001 のバーコードを読み取った場合、D10に本日の日付を入力したいです。 また、バーコードを読むと、該当するセルにカーソルが移動する方法も合わせて教えて頂きたいです。 こちらも既に入荷している商品はスキップして、未入荷の商品を検索したいです。 例えば、 JAN 49000002 のバーコードを読み取った場合、A12にカーソルが移動する様にしたいです。 関数やマクロ等を使用して、これらを行う方法を教えて頂きたいです。 よろしくお願いします。 動作環境 windows 7 PRO エクセル2010 バーコードリーダー BC-BR900L 補足 出力用のデータの入力先はセルにしたいと思います。 特にセルでなくてはならない理由は今の所ありませんが、空いた列を使用したいです。 この例だとE列でお願いします。 カーソルの移動の理由ですが、作業の工程が違うので、カーソル移動が必要です。 日付を入れる方は、商品の荷受け作業の際に使用します。 バーコードを読んで、どの注文分の商品が該当するかを付け合わせる際に使用したいです。 カーソルの移動は、発送作業の際に使用します。 バーコードを読んで、どの発送分かを確認する際に使用したいです。 実際のシートには、顧客情報や注文番号などのセルが存在しています。 それらの情報を確認する際に使用したいです。 わかりにくい説明で申し訳ありませんが、どうかよろしくお願いします。

  • エクセルのフォームに値を返す方法について

    バーコードリーダでバーコードを読み、それに該当する商品を商品リストから探し出して表示させたいと考えています。 【エクセルのフォームの概要】 (1)バーコードNo用の「textbox1」→txtbox1 (2)商品表示用の「textbox2」→txtbox2 (3)商品リストのA2~E1000までデータが入っていて、商品名はその一覧表の左から3番目です。 見よう見まねで色々検討しているのですが、どうしてもできません。下記のように考えていますが、何も表示されません。ご指導の程宜しくお願い致します。 Dim RangeA As Range Dim Ansform As String Set RangeA = Worksheets("商品リスト").Range("A2:E1000") On Error Resume Next Ansform = Application.WorksheetFunction.VLookup(txtbox1.Value, RangeA, 3, False) txtbox2.Text = Ansform 初めてマクロ(VBA)の世界に入ってきたため、さっぱりわかっていません。突然組みだしてもさっぱり前に進まないので、バーコードリーダーを使った商品管理をエクセルでするような事例がどこかのサイトに出ていましたら教えていただけませんか?(検索をかけてもうまく見つかりません。)

  • Excel マクロ モジュラス43 vba

    初めて質問させて頂きます。 よろしくお願い致します。 エクセルにてバーコードcode39を作成しバーコードリーダーで読み取りたいのですが私の会社はモジュラス43が付与されているcode39しか読み取ることが出来ません。 エクセルにてセルに入力した数字にモジュラス43を付与できるマクロ解るかたあれば教えて下さい。 色々試したのですがどうしても作ることが出来ませんでした、お願い致します。

  • エクセルのマクロが動くバーコードリーダー

    仕事で商品のJANコードのバーコードが正しく間違い無く印刷されているかの確認で 現在はパソコンにUSBでバーコードリダーを繋げ、パソコンにバーコードチェックが出来るものを エクセルで作り、マクロ機能を使って利用しています。 それ自体全く問題なく使えていますが、持ち運びに問題があります。 デスクトップでは無くノートパソコンにしたとしても、やはり設備自体は大きくなりますので どうにか出来ないかと検討しています。 そこで、探してみるとバーコードリーダーでOSがウインドウズモバイルの機種があるのをネットで見つけましたが、そんなバーコードリーダーに同じエクセルソフトを入れて、同様の使い方は可能でしょうか? また、何か他に良案がありましたら教えて下さい。 よろしくお願いします。

専門家に質問してみよう