|
りんさん、おはようございます。
追記にて、大変失礼なことをしてしまい、
申し訳ありませんでした。
もし、愛想が尽きていないようでしたら、
ご教授、宜しくお願い致します。
作りたいマクロ。
マクドナルドの注文表みたいな感じです。
オプションボタンにチェックを入れることで、
リストボックスにて、ボタンに応じたリストが表示され、
複数セットしたリストボックスのリストを選択している状態で、
コマンドボタンを押すと、
テキストボックスへ合計を表示させる
ことが目的です。
用意したもの
リストボックス×5
テキストボックス×2
オプションボタン×16
コマンドボタン×6
イメージ×1
準備
データは、ワークシートを7シート使い、
1シート目は、コマンドボタンを設置し、
ユーザーフォームを表示させ、
選択したリストを表示させるために使います。
残り6シートは、
すべて項目+数字で構成されています。
不完全・長いマクロですが、
よろしくお願いします。
Private Sub CommandButton2_Click()
Dim i As Long
Dim u As Long
Dim a As Long
Dim b As Long
Dim total As Long
Dim c As Integer
total = 0
If ListBox1.Selected(i) = True Then
i = Range("サンドイッチ!C3").Offset(ListBox1.ListIndex).Text
Else
i = 0
End If
If ListBox2.Selected(u) = True Then
If サイドS = True Then
u = Range("サイドメニュー!C4").Offset(ListBox2.ListIndex).Text
ElseIf サイドM = True Then
u = Range("サイドメニュー!D4").Offset(ListBox2.ListIndex).Text
ElseIf サイドL = True Then
u = Range("サイドメニュー!E4").Offset(ListBox2.ListIndex).Text
End If
Else
u = 0
End If
If ListBox3.Selected(a) = True Then
If ドリンクCOLD = True Then
If ドリンクS = True Then
a = Range("コールドドリンク!C4:C10").Offset(ListBox3.ListIndex).Text
ElseIf ドリンクM = True Then
a = Range("コールドドリンク!D4").Offset(ListBox3.ListIndex).Text
ElseIf ドリンクL = True Then
a = Range("コールドドリンク!E4").Offset(ListBox3.ListIndex).Text
End If
ElseIf ドリンクHOT = True Then
a = Range("ホットドリンク!C4").Offset(ListBox3.ListIndex).Text
If ドリンクM = True Then
a = Range("ホットドリンク!D8").Offset(ListBox3.ListIndex).Text
End If
End If
Else
a = 0
End If
If ListBox5.List(c) = True Then
If ListBox4.ListIndex = -1 Then Exit Sub
For i = 0 To ListBox4.ListCount - 1
If ListBox4.Selected(c) Then
ListBox5.AddItem ListBox4.List(c)
ListBox4.Selected(c) = False
End If
Next i
Else
c = 0
End If
total = total + i + u + a + b
TextBox2.Text = total
total = 0
TextBox2.SetFocus
End Sub
Private Sub CommandButton4_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim e As Integer
TextBox2 = ""
If ListBox1.Selected(a) Then
ListBox1.Selected(a) = False
End If
If ListBox2.Selected(b) Then
ListBox2.Selected(b) = False
End If
If ListBox3.Selected(c) Then
ListBox3.Selected(c) = False
End If
If ListBox5.Selected(e) Then
ListBox5.Selected(e) = False
End If
End Sub
Private Sub ListBox1_Change()
Dim no As Variant
Dim pname As String
no = ListBox1.ListIndex
TextBox1.Text = Range("サンドイッチ!C3").Offset(ListBox1.ListIndex).Text
pname = "C:\Documents and Settings\kasahara\My Documents\笠原\excel\マック\menu" & Format(no, "00") & ".jpg"
If Dir(pname) <> "" Then
Image1.Picture = LoadPicture(pname)
Else
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\menu_03.gif")
End If
End Sub
Private Sub ListBox2_Click()
If サイドS = True Then
TextBox1.Text = Range("サイドメニュー!C4").Offset(ListBox2.ListIndex).Text
ElseIf サイドM = True Then
TextBox1.Text = Range("サイドメニュー!D4").Offset(ListBox2.ListIndex).Text
ElseIf サイドL = True Then
TextBox1.Text = Range("サイドメニュー!E4").Offset(ListBox2.ListIndex).Text
End If
End Sub
Private Sub ListBox3_Click()
If ドリンクCOLD = True Then
If ドリンクS = True Then
TextBox1.Text = Range("コールドドリンク!C4").Offset(ListBox3.ListIndex).Text
ElseIf ドリンクM = True Then
TextBox1.Text = Range("コールドドリンク!D4").Offset(ListBox3.ListIndex).Text
ElseIf ドリンクL = True Then
TextBox1.Text = Range("コールドドリンク!E4").Offset(ListBox3.ListIndex).Text
End If
ElseIf ドリンクHOT = True Then
TextBox1.Text = Range("ホットドリンク!C4").Offset(ListBox3.ListIndex).Text
If ドリンクM = True Then
TextBox1.Text = Range("ホットドリンク!D8").Offset(ListBox3.ListIndex).Text
End If
End If
End Sub
Private Sub ListBox4_Change()
With ListBox4
If .ListIndex >= 0 Then TextBox1.Text = ListBox5.Text
If サイドCOLD = True Then
If サイドサイズS = True Then
TextBox1.Text = Range("追加決定!C22").Offset(ListBox4.ListIndex).Text
ElseIf サイドサイズM = True Then
TextBox1.Text = Range("追加決定!E22").Offset(ListBox4.ListIndex).Text
ElseIf サイドサイズL = True Then
TextBox1.Text = Range("追加決定!G22").Offset(ListBox4.ListIndex).Text
End If
ElseIf サイドHOT = True Then
TextBox1.Text = Range("追加決定!C17").Offset(ListBox4.ListIndex).Text
If サイドサイズM = True Then
TextBox1.Text = Range("追加決定!E17").Offset(ListBox4.ListIndex).Text
End If
ElseIf サイドサンド = True Then
TextBox1.Text = Range("追加決定!C3").Offset(ListBox4.ListIndex).Text
ElseIf サイドサイド = True Then
TextBox1.Text = Range("追加決定!I3").Offset(ListBox4.ListIndex).Text
If サイドサイズS = True Then
TextBox1.Text = Range("追加決定!C14").Offset(ListBox4.ListIndex).Text
ElseIf サイドサイズM = True Then
TextBox1.Text = Range("追加決定!E14").Offset(ListBox4.ListIndex).Text
ElseIf サイドサイズL = True Then
TextBox1.Text = Range("追加決定!G14").Offset(ListBox4.ListIndex).Text
End If
ElseIf サイド100 = True Then
TextBox1.Text = Range("100円!C3").Offset(ListBox4.ListIndex).Text
End If
End With
End Sub
Private Sub ListBox5_Change()
Dim Li2 As Integer
With ListBox5
Li2 = Val(.List(.ListIndex, 1))
End With
'エラー回避のため分岐
If Li2 >= 0 Then ListBox4.ListIndex = Li2
'TextBox1.Text = ListBox2.Text
End Sub
|
|