前回、商品在庫画面を完成させました。
この記事では、棚卸作業の前半部分を解説します。
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