ExcelのVBAについて質問です。
画像のフォーム「品番コード」に入力した
値によって、コンボボックスのリストを動的に変更したいのですが、
式がわかりません。
画像の例だと、
品番コードに「AAAA」を入力した際、
コンボボックスのリストに、
カラー⇒1、71、75
サイズ⇒1、2
で表示させたいです。
品番コードのtextbox⇒PrdId
コンボボックスカラー⇒cmbCL
コンボボックスサイズ⇒cmbSZ
考え方でもよいので、ご教示いただけますでしょうか。
ーーーーーーーーーーーーーーーーーーーー
Private Sub PrdID_Change()
On Error GoTo vlookError
Dim MaxRow As Integer
MaxRow = Worksheets("SKUマスタ").Cells(Rows.Count, 1).End(xlUp).Row
Deliv.Value = WorksheetFunction.VLookup("IM03" & PrdId.Value, Worksheets("SKUマスタ").Range("A2:G" & MaxRow), 7, False)
PrdName.Value = _
WorksheetFunction.VLookup("IM03" & PrdId.Value, Worksheets("SKUマスタ").Range("A2:G" & MaxRow), 2, False)
cmbCL.AddItem
Price.Value = _
WorksheetFunction.VLookup("IM03" & PrdId.Value, Worksheets("SKUマスタ").Range("A2:G" & MaxRow), 4, False)
Exit Sub
vlookError:
Deliv.Value = ""
PrdName.Value = ""
Price.Value = ""
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
事前に与えたい値を『名前の定義』でセル範囲を指定しておいた表を作成しておいて、
.RowSource = "名前"
により必要に応じて切り替えるとか?(検証も出来ない初級者ゆえ違っていたらごめんなさい)
No.2
- 回答日時:
VBAがすごく久しぶりなので間違っていたら申し訳ないです.
(そして定義はちょっと考えてないのでそこだけ変えてください)
Private Sub TextBox1_Change()
If TextBox1.Value = "AAAA" Then
ComboBox1.AddItem "1"
ComboBox1.AddItem "2"
ComboBox2.AddItem "1"
ComboBox2.AddItem "71"
ComboBox2.AddItem "75"
Else
ComboBox1.clear
ComboBox2.clear
Exit Sub
End If
End Sub
でどうでしょうか?AAAAと,大文字もあっていないとコンボボックスの値はクリアされるはずです.そうしたくなければComboBox1.clearとComboBox2.clearの部分は抜いてください
(ただ,そうするとコンボボックスにいろいろ値が残るので,以下のようにコードを変える必要があるかもわかりません.最初から記述してあります)
Private Sub TextBox1_Change()
ComboBox1.clear
ComboBox2.clear
If TextBox1.Value = "AAAA" Then
with combobox1
.AddItem "1"
.AddItem "2"
end with
with ComboBox2
ComboBox2.AddItem "1"
ComboBox2.AddItem "71"
ComboBox2.AddItem "75"
end with
Else
Exit Sub
End If
End Sub
要はクリア処理が必要になるだろう,ということです.
あとよく見れてないので間違っていたら申し訳ないのですがエクセルにもうリストが入っているようでしたら,
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Dim c as range
For Each c In Range("A1:lastrow,1")
If InStr(c.Value, textbox1.text ) > 0 Then
(ここまででテキストボックスに入力された値がA1からA列の最後の行に入っているかを確認しています.>0というのは,もし入っていたらという意味で使っています)
として,このあとcのセル番号を取得し,その何列右にあるものをコンボボックスにAddItemする,とできるはずです.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA レジストリの値の読み方に...
-
VBAの計算で@が出てしまう件
-
2つのマクロでチェックボックス...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
Excel VBA 定義されたプロージ...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
VBA listBoxについて
-
Excelのマクロでワードのテキス...
-
Vba SelStart、SelLen教えてく...
-
現在のブックを閉じないで、マ...
-
VBA listBoxから
-
VBAで各列の"+"と"o"の合計数を...
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
ExcelのVBAコードについて教え...
-
Excel マクロについての相談
-
ExcelVBA シート名を複数セルか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二点の座標から距離や角度を求...
-
エクセル・VBAでテキストボック...
-
複数条件のオートフィルタ(VBA)
-
VC++ (byte)(col & 0xFF) の意味
-
エクセルのVBAでの7×7の魔方陣...
-
VB.NET)コンボボックスの連動に...
-
検索結果の指定列をリストボッ...
-
for文の質問です。
-
テキストファイルの読み込みと...
-
VBAにおけるニュートン法
-
カラーの16進表記の足し算
-
一行飛ばしで合計
-
2次元配列を返す関数について
-
どいつもこいつもbot3かよ
-
4変数の非線形方程式のときかた
-
こうもりの撃退法
-
小数点以下五桁一致の判定
-
ドラゴン曲線を再帰で書く
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
おすすめ情報