' マルチページのフォームを作成した後、ボタンやリストボックス以外の部分で、
ダブルクリックすると、userform内でのモジュール記述ができるようになる。
もしくは、コードの記述ボタンをクリックする。
Private Sub UserForm_Activate()
' Private Sub UserForm_Initialize()でも、この場合は同じ.
' 順番としては、initialize〜activateの順である。
' このユーザーフォームがアクティブになったら、
' B6の入力された店コード
' atは、分岐スイッチ(public変数)
If at = 1 Then ' 店コードデータ表示の場合 --------------------------------------
Workbooks("si-menu.xls").Activate
Sheets("menu").Activate
mise_no = Range("b6").Value
Worksheets("menu").Activate
i = 5
UserForm1.Label1 = mise_no<------ フォームが表示すると同時にラベルに値が代入される。
UserForm1.Label2 = Sheets("menu").Range("d6").Value
デフォルト: ' リストボックスに値を代入するのに、ラベルとgoto文を使用。
ch = 0
' tableシートのセル範囲のデータをリストボックスに代入する。
s = Workbooks("si-menu.xls").Worksheets("table").Range("A" & i)
If s = "[END]" Then GoTo 店舗写真
UserForm1.ListBox1.AddItem (s)
i = i + 1
GoTo デフォルト
店舗写真:
On Error GoTo Errorhandler
i = 1
UserForm1.Image2.Picture = LoadPicture("M:\SI\shop_pic\p" & mise_no & ".jpg")
MAP:
i = 2
UserForm1.Image1.Picture = LoadPicture("M:\SI\map\m" & mise_no & ".gif")
Errorhandler: ' エラー処理ルーチン。
Select Case Err.Number ' エラー番号を評価します。
Case 53
If i = 1 Then MsgBox "店舗画像が用意されていません。 "
If i = 2 Then MsgBox "MAP画像が用意されていません。 "
Case 55 ' "ファイルは既に開かれています。" というエラーです。
Close #1 ' 開いたファイルを閉じます。
Case Else
' 他のエラー処理をここに記述します。
End Select
Resume Next
End If
If at = 2 Then ' help_open --------------------------------------------------------
i = 4
UserForm1.Label1 = "HELP"
UserForm1.Label2 = " Shop Information Macro VBA " & Sheets("更新記録").Range("c4").Value
デフォルト2:
' tableシートのセル範囲のデータをリストボックスに代入する。
s = Workbooks("si-menu.xls").Worksheets("table").Range("h" & i)
If s = "[END]" Then GoTo list_read_end
UserForm1.ListBox1.AddItem (s)
i = i + 1
GoTo デフォルト2
list_read_end:
End If
End Sub