ous">

小さな在庫管理

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

ユーザーフォームの連結 [VBA在庫管理システムVer01#02]

前回は、エクセルブックを準備し、ユーザーフォームを作成しました。

この記事では、エクセルブックと各ユーザーフォームを連結し、システムの画面遷移を作成していきます。

VBA在庫管理システムVer01

フォームの連結

各フォームを連結していきます。

プログラムブックとメニュー画面の連結

プログラムブックにHOMEシートを作成し、ボタンを設置します。
ボタンは、フォームコントロールとActive Xコントロールの2種類ありますが、VBAでの制御に適している、ActiveXコントロールを使用していきます。

ActiveX

デザインモードを選択し、ボタンをダブルクリックします。

デザインモード

VBEが立ち上がり、プロシージャが表示されます。
プロパティウィンドウでボタンのプロパティを修正します。

ボタンの設定

オブジェクトボックスで btnOpenを、プロシージャボックスで Click を選択します。選択すると、btnOpen_Ckick のプロシージャが生成されます。(CommandButton1_Click 等の必要の無いプロシージャは削除しましょう。)
プロシージャの中に、下記のコードを書きます。エクセルブックを最小化し、メニュー画面を表示させるコードです。

Private Sub btnOpen_Click()

ActiveWindow.WindowState = xlMinimized
frmMainMenu.Show

End Sub

*VBAのコードは、なるべくコピペせずに直打ちしましょう。VBEの自動メンバー表示機能(インテリセンス)に慣れると、入力が早く・正確になりますので使用していきましょう。
例えば、frmまで打ったら、[Ctrl] + [Space] を押してみてください。入力可能なメンバー候補が表示されるので、[↑] ・ [↓] キーで選択し、[Tab] キーで確定できます。


VBEでfrmMainMenuを選択し、閉じるボタンをダブルクリックします。

メニュー画面

先程と同様にプロシージャが表示されるので、中にコードを書きます。エクセルブックを最大化し、メニュー画面を閉じるコードです。

Private Sub btnClose_Click()

ActiveWindow.WindowState = xlMaximized
Unload Me

End Sub


エクセルシートを表示させ、動作確認してみましょう。ボタンがデザインモードになっているときは、クリックしても動作しないので解除してください。

デザインモード
 

メニュー画面と各画面の連結

メニュー画面に各フォームへのボタンを作成します。

メニュー画面のボタン設置


VBA実行時のメニュー画面
メニュー画面


各ボタンをダブルクリックし、コードを書きます。

Private Sub btnItemMaster_Click()

frmItemMaster.Show
Unload Me

End Sub
Private Sub btnItemInput_Click()

frmItemInput.Show
Unload Me

End Sub
Private Sub btnItemStock_Click()

frmItemStock.Show
Unload Me

End Sub
Private Sub btnItemOutput_Click()

frmItemOutput.Show
Unload Me

End Sub

各画面の閉じるボタンにメニューに戻るコードを書きます。

Private Sub btnClose_Click()

frmMainMenu.Show
Unload Me

End Sub

メニュー画面を表示させ、動作確認してみましょう。

ブック立ち上げ時の設定

ブックを開いた時にフォームが立ち上がるように、ブックオブジェクトに初期設定のコードを書きます。

VBEを立ち上げ、ブックモジュールを選択します。オブジェクトボックスで WorkBookを、プロシージャボックスで Open を選択します。選択すると、Workbook_Open のプロシージャが生成されます。
プロシージャの中に、下記のコードを書きます。エクセルブックを最小化し、メニュー画面を表示させるコードです。HOMEシートのOpenボタンと同じコードです。

Private Sub Workbook_Open()

ActiveWindow.WindowState = xlMinimized
frmMainMenu.Show

End Sub

一旦、ブックを立ち下げ、ブックを開いて動作確認してみましょう。

ブック立ち下げ時の設定

プログラムブックのHOMEシートに、ボタンをもう一つ設置します。

ボタンの設置

デザインモードを選択し、ボタンをダブルクリックします。

デザインモード

VBEが立ち上がり、プロシージャが表示されます。
プロパティウィンドウでボタンのプロパティを修正します。

ボタンの設定

オブジェクトボックスで btnClose を、プロシージャボックスで Click を選択します。選択すると、btnClose_Ckick のプロシージャが生成されます。(CommandButton1_Click 等の必要の無いプロシージャは削除しましょう。)
プロシージャの中に、下記のコードを書きます。エクセルブックを保存し、終了させるコードです。

Private Sub btnClose_Click()

ActiveWorkbook.Saved = True
Application.Quit

End Sub


エクセルシートを表示させ、動作確認してみましょう。ボタンがデザインモードになっているときは、クリックしても動作しないので解除してください

デザインモード

これで、ユーザーフォームが連結できました。


 
次回は、ユーザーフォームにサイズ調整機能を追加していきます。
www.minizaiko.com