【マクロ】在庫管理シートを作ろう!

Excelマクロ編

在庫の管理をする際、商品や部材数がそんなに多くない場合はエクセルで済ますことが多いと思います。
ですが手打ちで入出庫の記録をつけるのって意外と面倒ですよね。

以前、手入力での在庫管理表の作り方を解説しましたが、
今回はワンタッチで入出庫操作が可能なエクセルシートの作り方を解説します。
とっても簡単なので、ぜひ作ってみてください!

ワンタッチ在庫管理の仕組み

ここでいうワンタッチとは、クリックだけで入出庫の記録がつけられるということです。
そしてマクロの発動条件は、特定のセルをクリックすることです。

ですので、普段マクロを使用する際に使うボタンなどは作成しません。

ここでの注意点は

・引数Targetを使用すること
・コードはSheetに記載すること

ここでは理解するよりも実際のコードを見た方が早いです。
マクロの開き方が分からない・・・という方は、こちらからご覧ください。

コードはシートに書く

特定のセルをクリックして発動するマクロ」は標準モジュールに書くと起動しないので注意が必要です。

下記赤枠部を参照し、Worksheetを選択しましょう。

サンプルコード

下図のような単表タイプの管理表があったとしましょう。

ワンタッチでどう使うかというと・・・

  1. 「出庫セル」あるいは「入庫セル」をクリック
  2. 出てきたインプットボックスに数を入力しOK(エンターキー)
  3. 日付、数の増減、在庫数が反映される

いたってシンプルです。
コードはこのようになっています。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range(“A1:D2”)) Is Nothing Then Exit Sub

Dim myCol, myRow As Long
Dim Num1, Num2 As Long

myCol = Selection.Column
myRow = Cells(Rows.Count, myCol).End(xlUp).Row

Cells(myRow + 1, 1) = Date

Select Case Target.Value

    Case "出庫"
        Num1 = Application.InputBox("出庫数を入力してください", "在庫管理", 1)
        Cells(myRow + 1, myCol) = "-" & Num1
        Cells(myRow + 1, myCol).Offset(0, 1) = _
            Cells(myRow + 1, myCol).Offset(-1, 1).Value - Num1

    Case "入庫"
        Num2 = Application.InputBox("入庫数を入力してください", "在庫管理", 3)
        Cells(myRow + 1, myCol).Offset(0, -1) = "+" & Num2
        Cells(myRow + 1, myCol) = _
            Cells(myRow + 1, myCol).Offset(-1, 0).Value + Num2

End Select

Range("A1").Select

End Sub

まとめ

今回はコピペで作れる単表タイプの在庫管理表をご紹介しました。
次回以降は在庫移動表も解説したいと思います。

在庫管理以外にも様々なエクセルシートの管理に役立つと思います。
慣れてきたら自分の好みに合わせてコードを書き替えてみてください!

コメント

タイトルとURLをコピーしました