前回、メニュー画面のサイズ調整機能を作成しました。
この記事では、システムの配布に向けて、メニュー画面に機能追加していきます。
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が完成しました。
ただし、まだ、システムと呼ぶには早く、在庫品の入出庫データの管理ができた段階です。
これから、日々の入出庫管理を進めながら、入出庫履歴から過去の統計値が取得できるようになります。
在庫管理は様々な変動要因を含みます。
特に在庫量の指標となる、安全在庫や発注点・最大在庫、発注単位や発注リードタイムは日々適正化を図る必要があります。
例えば、毎月の出庫量を取り出し、平均値や標準偏差から安全在庫や発注点・最大在庫の計算値を求め、現在の設定値と比較するシートを作成し、在庫量の見直しを勧奨するのもいいでしょう。
在庫量の適正化に向けて、システム内のデータを有効活用していきましょう。