ous">

小さな在庫管理

在庫管理導入からシステム作成まで詳細解説!

棚卸機能作成 帳票処理 [VBA在庫管理システムVer01#32]

前回、商品在庫画面を完成させました。

この記事では、棚卸作業の前半部分を解説します。


VBA在庫管理システムVer01

棚卸の流れ

システムの棚卸は、下記の作業フローで進めます。

1. 棚卸集計表の出力
  商品在庫画面から出力
2. 実棚の計量
  棚卸集計表用紙への記入
3. 棚卸集計表への入力
  棚卸集計表シートへの入力
4. 棚卸実行
  システム棚卸の実行

フローに沿って、システムの追加機能などを解説していきます。

この記事では1〜3までの、帳票処理関連について解説します。
 

1. 棚卸集計表の出力

このシステムでは、商品在庫画面から棚卸表を出力できる構造にしてあります。

出力したシートで棚卸作業を進めてもいいのですが、作業中に商品在庫画面の棚卸集計表ボタンが押されると、データがリセットされてしまいます。
また、データ保存の観点からも、ブックを分けておきたいと思います。
 

出力フォームの機能追加

帳票出力完了後の終了フラグ用ユーザーフォーム frmItemInventoryReportにエクスポートボタンを追加します。
 
※VBA実行時の出力画面

 

棚卸集計表のエクスポート

エクスポートボタンクリック時の動作を作成します。

Private Sub btnExport_Click()
Dim 棚卸日 As String, FileName As String

'棚卸日の取得
棚卸日 = Format(Cells(3, 8).Value, "yyyymmdd")
    
'ファイル名の格納
FileName = データ位置 & 棚卸日 & "棚卸集計表.xlsx"

If Dir(FileName) = "" Then

        Application.ScreenUpdating = False

    '集計シートエクスポート
    Workbooks("在庫管理REPORT.xlsx").Sheets("棚卸集計表").Copy
    ActiveWorkbook.SaveAs FileName
    ActiveWorkbook.Close

        Application.ScreenUpdating = True

    'コメント表示
    MsgBox "エクスポートが完了しました。" & vbCrLf & vbCrLf & FileName, vbInformation, "確認"

Else

    'コメント表示
    MsgBox "エクスポートできませんでした。。。" & vbCrLf & vbCrLf & "同一名のブックがあります。削除して再履行して下さい。", vbCritical, "確認"

End If

End Sub

@1. 棚卸日の取得
棚卸集計表シートのH3セルに書き込んだ棚卸日を、表示形式をファイル名作成用に変更して、変数に格納します。
少し遠回りですが、可読性を優先しています。

@2. ファイル名の格納
フルパスでファイル名を成形し、変数に格納します。

@3. ファイルの存在確認
Dir関数を使用し、同一名称のファイルが存在するか確認します。Dir関数は同一のファイル名が存在するとファイル名を返し、存在しない場合は "" を返すことを利用し、ファイルの存在確認をします。
①同一名ファイルがない場合、集計シートをエクスポートし、MsgBoxで完了表示を出力します。
②同一名ファイルがある場合、MsgBoxで対応を促します。

@4. ファイルのエクスポート
シートのCopyメソッドで、指定したシートのみの新規ブックが生成されます。
SaveAsメソッドで名前を付けて保存した後、Closeメソッドでブックを閉じます。

@5. MsgBox
今回はMsgBoxを利用して、終了フラグを作成しました。
プロンプト(表示されるメッセージ)に関しては、MsgBoxはフォントが小さいので、改行で行間隔を空けて読みやすくしています。また、アイコンを適正に選択し、成功・失敗がユーザーに視覚的にも伝わるようにします。
システム全体の統一感を目指すなら、これまでのように、終了フラグはユーザーフォームで作成するのがいいでしょう。
 

2. 実棚の計量

棚卸集計用紙への記入

エクスポートした棚卸集計表(20※※※※※※棚卸集計表.xlsx)を印刷して、実棚計量時の記入用に使用します。

棚卸集計表は、現在在庫数や入出庫履歴を表示してありますので、計量時にデータとの乖離があれば、その場で再計量が可能です。
また、棚位置順に並べてありますので、手戻りも少なく、棚卸作業の効率化がはかれます。
 

3. 棚卸集計表への入力

棚卸集計表シートへの入力

エクスポートした棚卸集計表(20※※※※※※棚卸集計表.xlsx)の棚卸集計表用のシートに集計データを入力します。

在庫変動の無いものは、不動在庫として、備考欄に記載しておくと評価替えや廃棄時の判定に利用できます。
また、シートに価格情報を追加して、棚卸価額の計算用に利用することもできます。

棚卸集計表を別ブックにエクスポートすることで、単独の、使い慣れた、エクセルブックとして保存されますので、様々な場面で活用可能となります。

 

棚卸作業の前半部分を解説しました。
次回は、棚卸作業の後半部分を解説します。
www.minizaiko.com