[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『オプションボタンとIf関数の併用』(みけねこ)
ActiveXのリストボックスとオプションボタンを使い、
リストボックス(商品コードのリスト、別シートにあり)をクリックした時、
OptionButton1 = Trueなら、A1に商品コードを入力
OptionButton2 = Trueなら、A3に商品コードを入力
さらに、
A1(A3、括弧内はOptionButton2 = Trueの場合)
の商品コードからVLookupで別シートの商品シートから商品名と商品価格を取得し、
商品名をA2(A4)へ、商品価格をB2(B4)へ入力する、
ということを考えています。
しかし、変数とIfをどう記述したらよいのかわからず、うまくいきません。
ご教授くだされば幸いです。初心者です。
Private Sub ListBox1_Click()
Dim C1 As Variant Dim C2 As Variant Dim C3 As Variant
If OptionButton1 = True Then C1 = Worksheets("シート1").Range("A1") C2 = Worksheets("シート1").Range("A2") C3 = Worksheets("シート1").Range("B2") Range("A1").Value = ListBox1
ElseIf OptionButton2 = True Then C1 = Worksheets("シート1").Range("A3") C2 = Worksheets("シート1").Range("A4") C3 = Worksheets("シート1").Range("B4") Range("A3").Value = ListBox1 End If
Worksheets("シート1").Range(C2).Value = Application.WorksheetFunction.VLookup _ (Worksheets("シート1").Range(C1), Worksheets("商品シート").Range("A:F"), 2, False)
Worksheets("シート1").Range(C3).Value = Application.WorksheetFunction.VLookup _ (Worksheets("シート1").Range(C1), Worksheets("商品シート").Range("A:F"), 5, False)
End Sub
< 使用 Excel:Excel2007、使用 OS:Windows7 >
よくわかんないけど、こういうこと? Private Sub ListBox1_Click() Select Case True Case OptionButton1 Call 処理(ListBox1.Text, "A1", "A2", "B2") Case OptionButton2 Call 処理(ListBox1.Text, "A3", "A4", "B4") End Select End Sub Sub 処理(s0 As String, s1 As String, s2 As String, s3 As String) With Sheets("シート1") .Range(s1) = s0 .Range(s2) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:F,2,0)") .Range(s3) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:F,5,0)") End With End Sub (稲葉) 2014/02/25(火) 16:51
オプションボタンの場合分けと、A1(A3)への入力はうまくいきました。
ただ、A2(A4)およびB2(B4)へのVLOOKUPの参照結果が#NAME?になってしまいます。
(みけねこ) 2014/02/25(火) 17:37
実際のコードはどうなっていますか? 商品シートの「!」 が抜けていたりしませんか? (稲葉) 2014/02/25(火) 17:56
標準モジュール
Sub 処理(s0 As String, s1 As String, s2 As String, s3 As String, s4 As String, s5 As String, s6 As String, s7 As String)
With Sheets("シート1") .Range(s1) = s0 .Range(s2) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:AI,2,0)") .Range(s3) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:AI,5,0)") .Range(s4) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:AI,6,0)") .Range(s5) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:AI,19,0)") .Range(s6) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:AI,27,0)") .Range(s7) = Evaluate("VLOOKUP(" & s0 & ",商品シート!A:AI,35,0)") End With End Sub
シート1のプロシージャ
Private Sub ListBox1_Click()
Select Case True Case OptionButton1 Call 処理(ListBox1.Text, "D17", "D18", "F17", "G17", "J6", "L17", "L18") Case OptionButton2 Call 処理(ListBox1.Text, "D19", "D18", "F19", "G19", "J6", "L19", "L20") End Select End Sub (みけねこ) 2014/02/25(火) 18:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.