続・エクセルを使った簡単なバーコード式在庫管理システムを作る


【前回の記事】
エクセルを使った簡単なバーコード式在庫管理システムを作る


前回からの続きです。

今回はソース部分を記述してツールを完成させます。

シート側に記述するコード

前回記事で最初の方に書いた仕様の一つに、

「バーコードの読み取みと同時に一覧から商品を検索して表示する」

といったものがありましたね。まずはこれを実装します。

上図の”B3セル”部分の内容が変更された場合に自動で処理を走らせたいと言う事なので、「Worksheet_Change」という関数を使用します。

これはExcel側の機能として最初から用意されている関数で、ワークシートのセルがユーザーまたは外部リンクにより変更された時に、この中に書かれている処理が実行される形になります。

今回この入力受付用のシートに「main」と言う名前を付けているので、以下のプロジェクトエクスプローラーの中から「Sheet5(main)」と名前が付いているシートを選択します。

開いたら以下の処理を記述します。

判定処理の内容は

「変更されたセルが”B3” かつ セルに何か文字が入力されたか」を判定しています。

両方の条件を満たしていた場合のみ、「idProcesser」という処理に入力されたコードを渡す様になっています。idProcesserの中身は次で作成していきます。

ちなみにWorksheet_Changeは標準モジュールに記述しても意味が無いので、必ずワークシート側に記述する様にしましょう。


スポンサーリンク

標準モジュール側に記述するコード

ここで先程記述した「idProcesser」の中身を書いていきます。
※関数名は何でも良いので、分かりやすいものに変更して構いません。

主な内容は「受け取ったコードが既に登録済みであるかどうか」の判定ですね。

判定した結果『登録済み』であれば在庫更新を行い、

未登録』であれば新規登録を行いバーコードの発行。という感じです。

解説する程のコード量でも無いと思うので、一気に全部載せてみます。

とりあえず動く事だけを目標とした単純な内容です。

IDや品名に「$」が使われていたら正常に動かないという欠陥丸出しの設計ですが、その辺は他の記号に置き換えてもらえればいいかと・・・。

大まかな流れと考え方だけ分かってもらえれば良いと思います。

ちなみにバーコードの元になる値をシートにセットする際に、「”*” & id & “*”」と*(アスタリスク)で挟んでいる事に気付きましたか?

これはバーコードの始まりと終わりを表す為の記号となり、Code-39ではこの記号も含めてバーコードを出力しないと読み取ってくれませんので注意しましょう。

さて、上のコードを見て頂ければ気付くと思いますが、このコードだけではまだ完成ではありません。

「UserForm1.makeData(id)」という記述がある通り、ユーザーフォームも用意しています。

ということで登録・更新用のユーザーフォームが残っていますので、最後にそちらを作成しましょう。

ユーザーフォームの作成

必要なフォームは2つです。

・新規登録用

・在庫更新用

ですね。簡単に以下の様な感じで作りました。

登録フォームは入力中に「やっぱりIDを変更したい」と思う事もあると思いますので、全項目修正できる様にテキストボックスで作成しています。

更新フォームはIDを変更されると困りますのでラベル形式に変更。在庫数はスピンボタンを用意してマウス、キーボードどちらにも対応した感じですね。

毎回入出庫の個数が決まっているなら「○個増」とかのボタンを用意するのも良さそうです。

それぞれソースは以下の通り。

[登録フォーム側]

[更新フォーム側]

こちらも解説する程の内容は無いですね。


スポンサーリンク

作ってみた感想など

私自身ラベラーは持っていなかったので、通常のプリンターで紙へ出力してバーコードリーダーで読み取るという所までは試してみました。

試してみた感想としては、結構使えますねこれ。

まず第一にコードを入力する手間が省けるというのは大きいです。

一覧から選ぶという方法もありますが、取り扱い商品数が多ければ探すのが面倒になります。バーコードならそういった不便さが一気に解消できます。

そして第二に人的ミスを減らす事ができるという点です。

手動や目視での商品検索だと、どうしても類似した見た目や一文字違いのコードと間違えてしまう可能性がありますが、そのミスを大幅に減らす事が可能です。

アルバイトを雇われていたり、人に手伝ってもらっている方なら尚更効果があると思います。

まぁ実際に商品販売のプロであるお店がバーコードを使って管理をしているんですから、使えない訳が無いですね。

何となく可能性は感じられたので、後はアイディア次第ですかねー。

また何か思い付いたら紹介していきたいと思います。

今回作ったエクセルのサンプルはこちら↓


スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. 匿名さん より:

    はじめまして。中小企業で事務をやっている者です。平均年齢55歳前後の会社なのでPCに詳しい人が殆どいなく、自分で好き勝手に仕事ができる状態です。旧式(手書きでリスト→エクセル)で在庫管理をしています。
    正直、取り扱う品も多くないので、在庫管理のソフトの導入などに意義を見出せずに、自分でなにかできないかな・・と数年前から思っていたところに記事を拝見して、「これならつかえそう!!」と思いました。しかも無料で公開していただいて有難うございます。Accessは今だと本当に使っている人いないですね。。。私はこういう機能がほしいなと思ったことがAccessでできるので使っています。これもネットで「初心者のAccessの使い方」を読んで作っただけなので、こうしてネットでノウハウを公開してもらえると、今度はVBAを学んでみよう!と思えました。

    • 藤美れいん より:

      早速お役に立てた様で嬉しい限りです!

      ExcelやAccessにしてもそうですが、使いこなす事ができれば欲しいものは大体作れるんですよね。
      更にマクロ機能やVBAを覚えると、作り込み次第で市販ソフトと同等のものも作る事が可能です。
      最初は難しいとは思いますが、ぜひ覚えてみて下さい!