ホーム :フォーム関連 :


マルチページの設定例

前へ 次へ

' マルチページのフォームを作成した後、ボタンやリストボックス以外の部分で、
ダブルクリックすると、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



前へ 次へ
フォーム関連 に戻る