ous">

小さな在庫管理

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

メニュー画面の配布用機能追加 [VBA在庫管理システムVer01#35]

前回、メニュー画面のサイズ調整機能を作成しました。

この記事では、システムの配布に向けて、メニュー画面に機能追加していきます。


VBA在庫管理システムVer01

バージョン管理

今回の、解説用の小さなシステムでも、バグ修正や機能の追加・修正など変更部分が増えていきます。
最終的には、どれが最新版か分からなくなり、混乱状態に陥り作業が停滞することがあります。
これを回避するために、最低限、バージョン管理は入れておきましょう。

シート追加

プログラムブックにプロパティシートを追加します。

※プロパティシート例

システムの更新時に、プロブラムブックの更新日・バージョン・更新者を更新していきます。また、下段に更新詳細を記入していくと更に判り易くなります。
また、データブックやレポートブックの更新情報は、ブックを保存して閉じる時にプロパティシートに日付・時刻情報や作業PC名を書き込むコードを追加すると、更新履歴が追えるようになります。
 

バージョン表示

ユーザーフォームの最前面にバージョン情報を表示していきます。

ツールボックスでラベルを選択し、frmMenuのフッター内でドラッグして2個追加し、書式設定を利用しながら、見た目を整えます。

※プロパティ設定後のユーザーフォーム

追加したラベルに、プロパティシートのバージョン情報を表示させます。

Private Sub UserForm_Initialize()

'----サイズ調整---------------------------------------------------------
Me.Zoom = Me.Zoom * ((画面高さ * 高さ割合) / Me.Height)
Me.Width = Me.Width * ((画面高さ * 高さ割合) / Me.Height)
Me.Height = Me.Height * ((画面高さ * 高さ割合) / Me.Height)
'-----------------------------------------------------------------------

'高さ割合表示
texSize.Value = Format(高さ割合, "0.00")

'バージョン表示 ←ここを追加
lblV1 = Sheet2.Cells(6, 2).Value
lblV2 = Sheet2.Cells(5, 2).Value & "更新"

End Sub


※VBA実行時のユーザーフォーム

配布したプログラムにトラブルが発生した時など、最新版が使われているか画面上で確認可能になります。
 

管理者用画面

システムを配布して、ユーザーに使用してもらうにあたって、機能制限をかけていきます。
例えば、棚卸実行ボタンはユーザーは使わない機能となりますので、なんらかの使用制限が必要となります。
使用可能な状態だと、誤って実行しデータが破損してしまう恐れがありますので、機能制限はかけておきましょう。

今回は、メニュー画面のシステム管理項目に機能制限をかけていきます。
 

画面作成

メニュー画面のシステム管理のフレームを非表示とします。fraSystem のプロパティ Visible を False に設定します。

※プロパティ設定後のユーザーフォーム

 

パスワード設定

ヘッダー部をダブルクリックするとパスワード入力画面が表示される構造を設定します。

Private Sub lblHeader_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

'インプットボックスを設定し、パスワードを取得
Dim myMsg As String, myTitle As String, PASS As String
    myMsg = "パスワードを入力してください"
    myTitle = "PASS"
    PASS = Application.InputBox(prompt:=myMsg, Title:=myTitle, Type:=2)

'インプットボックスの入力値を判定
If PASS = "123ab" Then
    fraSystem.Visible = True
    btnInventoryUpdate.SetFocus
Else
    fraSystem.Visible = False
    btnItemMaster.SetFocus
End If

End Sub

@1.インプットボックスの表示
インプットボックスの機能を利用し、パスワード入力画面を表示します。

@2.インプットボックスの入力値判定
パスワードが正しければ、システム管理のフレームを表示させます。また、パスワードが間違っている時や、キャンセルが押された時はシステム管理のフレームは非表示とします。
フレームの表示設定をした後、明示的にボタンにフォーカスをセットしています。


※VBA実行時のユーザーフォーム

 

システムブックの配布

システムブックを配布してみましょう。

サーバー上にデータフォルダを設置して、標準モジュール 設定のデータ位置を変更します。
各PCのデスクトップから操作ができるか、確認しましょう。

Option Explicit

Public 画面高さ As Long
Public 高さ割合 As Double

Public データ位置 As String

Sub InitialSetting()

'サイズ調整
ActiveWindow.WindowState = xlMaximized

画面高さ = Application.Height
高さ割合 = 0.9

ActiveWindow.WindowState = xlMinimized

'データ位置の設定  ←ここを修正
データ位置 = "Z:\****\在庫管理\"

'メニュー画面の表示
frmMainMenu.Show

End Sub

 

まとめ

VBA在庫管理システムVer01が完成しました。

ただし、まだ、システムと呼ぶには早く、在庫品の入出庫データの管理ができた段階です。

これから、日々の入出庫管理を進めながら、入出庫履歴から過去の統計値が取得できるようになります。

在庫管理は様々な変動要因を含みます。
特に在庫量の指標となる、安全在庫や発注点・最大在庫、発注単位や発注リードタイムは日々適正化を図る必要があります。

例えば、毎月の出庫量を取り出し、平均値や標準偏差から安全在庫や発注点・最大在庫の計算値を求め、現在の設定値と比較するシートを作成し、在庫量の見直しを勧奨するのもいいでしょう。


在庫量の適正化に向けて、システム内のデータを有効活用していきましょう。