ous">

小さな在庫管理

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

商品在庫画面の入力支援作成 [VBA在庫管理システムVer01#31]

前回、商品在庫画面の棚卸集計表を作成しました。

この記事では、商品在庫画面の入力支援を作成し、完成させます。


VBA在庫管理システムVer01

商品在庫画面の入力支援作成

ユーザーフォームの入力支援機能は様々ありますが、最低限、タブ移動と入力モードの設定はしておきましょう。

タブ移動の設定

入力支援機能として、タブ移動の順序を設定していきます。
VBEで[表示]-[タブオーダー]をクリックすると、タブオーダー画面が表示されます。リストの上から順に、タブ移動が設定されます。ラベルはタブが止まらないので、無視します。



フォーム frmItemStockを選択し、タブオーダー画面を表示し、画面全体のタブ移動を設定します。

フレーム fraItemSelect を選択し、タブオーダー画面を表示し、フレーム内のタブ移動を設定します。

詳細情報は参考データを表示させるだけで、入力はありません。
フレーム fraDetailInfo を選択し、タブが止まらないように、プロパティウィンドウで詳細設定します。


入力モードの設定

入力時に、日本語を入力したいのに入力モードが半角英数だったりすると、入力モードを変更する手間が発生します。
VBAでは、初期値が0-fmIMEModeNoControl(前の入力モードのまま)となっています。

そこで、日本語入力の時は4-fmIMEModeHiragana(全角ひらがなモード)、英数字入力の時は8-fmIMEModeAlpha (半角英数字モード)にプロパティウィンドウで詳細設定します。

日本語入力

英数字入力


商品在庫画面の課題等

ここまで、商品在庫画面を作成してきましたが、運用時に課題となりそうな項目を記しておきます。
※この解説記事で作成した画面には、対策を加えていません。


1.画面遷移

商品在庫画面は閲覧主体の画面となっていて、商品選択で商品を選ぶと在庫情報が表示されます。

ただし、商品在庫表で商品を選択しダブルクリックすると、在庫情報を表示する機能を入れてあります。
これはユーザーには分かりにくいので、リスト選択ボタン等を設置してもいいでしょう。

 
※選択ボタン設置後のユーザーフォーム


2.コードが長い

解説用に動作を追い過ぎて、コードが冗長となっている部分がありますので、コードを短縮した方がいいでしょう。コードが長いと、追加・修正時に変更位置が掴みにくく、作業性が大きく低下します。

対策としては、配列変数を活用してブックの使用を減らしたり、サブルーチン化したりするのがいいでしょう。メインのプロシージャは一画面に収めると、可読性が向上します。

 
※サブルーチン化した棚卸集計表のメインコード例

Sub ShowItemInventoryReport()

インプットボックスを設定し、棚卸日を取得
Dim myMsg As String, myTitle As String, 棚卸日 As String
    myMsg = "棚卸日を入力してください" & vbCr & "(例:2023/01/01)"
    myTitle = "棚卸日入力"
    棚卸日 = Application.InputBox(prompt:=myMsg, Title:=myTitle, Default:=Format(Date, "yyyy/mm/dd"), Type:=2)

'インプットボックスの入力値を判定
If 棚卸日 = "False" Then
    Exit Sub
End If

    Application.ScreenUpdating = False

'棚卸集計表データの更新
Call LoadItemInventoryReport

'棚卸集計表データの取得
Call GetItemInventoryReport

'棚卸集計表データの書込
Call UpdateItemInventoryReport

    Application.ScreenUpdating = True

'出力フォームの表示
frmItemInventoryReport.show

End Sub

 


これで、商品在庫画面が完成しました。
次回から、システムの棚卸機能を作成していきます。
www.minizaiko.com