商品販売をしている方で、在庫管理にエクセルを利用している方って結構多いと思います。
私自身も自作ツールを使って管理していますが、いざ在庫更新をしようと思った時に一々商品コードを手打ちして検索したり、リストから目視で探したりするのって結構面倒臭いんですよね。
そして「後で纏めて更新しとこう」なんて考えたばっかりに、そのまま忘れて在庫の無いまま出品してしまい慌てた経験が・・・
そんな事を繰り返さないために、少しでも管理の手間を省こうと思い用意したのが今回のツール。
『商品コードの手打ちをしたくないなら一瞬で読み取れる仕組みを作ればいいじゃない』
という事で、エクセルVBAを用いたバーコード式の在庫管理システムを作ってみようと思います。
「バーコード」と聞いて作るのが難しそうと思われるかもしれませんが、全くそんな事は無いので安心して下さい。バーコードってMicrosoftOffice(確か2000以降)があれば誰にでも作れるんですよ?
存在は知ってたけどどういう形で作れば良いか分からなかったという人も、ぜひ参考にしてみて下さい。
今回作るものはかなり単純な仕組みのもので、コードにして200行も無い簡単な内容です。一応最後には作ったファイルを公開しますが、VBA勉強のためにぜひ一から組んでみる事をおすすめします。
準備するもの
・Microsoft Excel
・Microsoft Access
・バーコード出力用のプリンター、ラベラーなど
・バーコードリーダー
「なぜAccess?」と思われるかもしれませんが、バーコードを作成するための「バーコードコントロール」という機能はAccessが持つ機能なんです。それをExcel側で呼び出して使おうと言う事なので、Accessが必要になります。
・・・じゃあわざわざExcel使わなくてもAccessだけで良いんじゃないかって?
そういう事言わない!
世の中には「え?それわざわざ○○でする必要無くない?」っていうのに溢れてるんですよ。ちなみにこの赤字のセリフをリアルで言われると結構傷付きます(笑)。
まぁAccess触った事無いって人の方が多いですからね!
取り扱い商品数が少なければAccessを使うメリットも別に無いですからね!
自由に色々できるExcelの方が簡単だからです!
という訳でOfficeが入って無いと話にならないのですが、このページを見に来ている時点で大丈夫でしょう!
・・・と思いましたが、そういえば昔のOfficeだとHOME版にはAccessが入って無かった様な・・・。
そういう方はとりあえず最新版Officeの体験版を落としてみましょう。Office365は一ヶ月無料で使えたはず。
ラベラーやリーダーも実際に活用したいと思った時に購入すれば良いだけなので、別に今は無くても問題ありません。
仕様を決める
それでは早速開発していきましょう。
実際の運用シーンを想像しながら仕様を書き出してみます。
■バーコードの読み取みと同時に一覧から商品を検索して表示する。
■表示画面には商品名と現在の在庫数も表示し、そのまま変更できる様にする。
■一覧に存在しない場合は新規登録を行う。
■新規登録はID手入力で行うため、登録と同時にバーコードを発行する。
といった感じのものにしたいと思います。
最終的にバーコード発行と同時にプリンター(ラベラー)にデータを飛ばして、より作業を簡素化する事も可能ですが今回はそこまでしません。
各シートとバーコードオブジェクトの作成
シートは全部で3つ作成します。
1つ目はID入力用シート。
2つ目は商品データのリストを格納するシート。
ここまでは特に説明の必要は無いですね。
最後は発行したバーコードを表示するためのシートです。
このバーコードの作り方は非常に簡単です。
以下の図の様にExcel上部にあるタブの中から「開発」⇒「挿入」と進み、
ActiveXコントロール群の中にある「コントロールの選択」を開きます。
※Excel上で開発タブを表示させる方法
次に「コントロールの選択」ウィンドウが現れるので、下にスクロールして「Microsoft バーコード コントロール」を選択します。
※ここでは14.0となっていますが、Accessのバージョンによって表示は異なります。
「OK」を押すとマウスカーソルが十字(+)に切り替わるので、図形を描くのと同じ要領で適当に長方形型にマウスをドラッグすると、以下の様にバーコードが出来上がります。
この時点で表示されているコードはただのサンプルで、どの値ともまだリンクしていません。
リンクさせるには先程作成したバーコード上で右クリックを行い、プロパティを選択します。
すると以下の様なプロパティウィンドウが表示されるため、「LinkedCell」部分に”A1”を入力。
続いてA1セルに以下の様な「12桁~13桁」の数字を入力します。
(例:123456789012)
入力後が終わったら、先程作成したバーコードオブジェクトを選択して少し動かしてみましょう。下図の様に入力が反映されてバーコードが作成されるはずです。
バーコードスタイルの変更
先程の操作でバーコードを生成する事には成功しました。
ですが、リンクさせたセルの値を10桁や15桁にしてみるとなぜかバーコードオブジェクトが真っ白になって何も表示されなくなってしまう。
という事に気付きましたか?
実はバーコードには幾つか種類があり、種類に応じて有効桁数や使用できる文字が異なります。
オブジェクト生成直後は自動的に「JAN-13」というスタイルが選択されており、12~13桁の桁数でしかバーコードを生成する事ができません。
※環境によってデフォルトのスタイルは違うかもしれません。
商品をJANコードで管理している場合は問題ありませんが、独自のコードで管理している方の方が多いでしょうからこのままだと困りますよね。
という事でバーコードの形式を変更したいと思います。
バーコードオブジェクト上で右クリックを行い、「Microsoft バーコード コントロール ○○ オブジェクト」の中にある「プロパティ」を選択します。
プロパティ画面が表示されるので、一番上の「スタイル」の部分を変更する事でバーコードの形式を変える事ができます。
個人的におすすめはアルファベットや記号も使用できる「Code-39」です。
「HOBBY-001」や「BOOK-1001」などの様に、数字だけのパターンより遙かに分かりやすくコードを設定する事ができます。
Code-39で使用できる文字は以下の通りです。
・数字:0~9
・アルファベット:A~Z
・記号:-,.(ピリオド),_(スペース),$,/,+,%,*
Code-39で扱えるアルファベットは大文字のみですが、小文字も扱える「Code-128」という形式もあります。
一見そちらの方が良さそうにも思えますが、扱える文字数が増えているという事はその分バーコードパターンも増えて細かくなっているため、解像度の低いプリンタなどを使うと正確に印字するのが難しく読み取りに失敗してしまう可能性が高くなります。
バーコードごとの特性を考えて選択するのが大事ですね。
ちなみに「バーコードリーダー(読み取り機)」の方も注意が必要です。全ての機器がどんな形式のものでも読み込める訳では無いので、対応形式はよく確認しておきましょう。
さて、これでシート側の準備は全て終わりです。
次から中身のコード部分の作成を行います・・・・・・が、長くなりそうなので一旦ここで区切ります。
【続きの記事】
コメント
いちばん分かりやすいしありがとうございました