質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1377閲覧

VBA コンボボックス 選択可能値を指定する

Yoshikun_0945

総合スコア224

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1グッド

2クリップ

投稿2018/08/21 20:29

#実現したいこと
VBAのフォーム画面に設置しているコンボボックスAにて指定したのインデックス番号の値が選択された場合、コンボボックスBの選択可能値を指定する

例:コンボボックスAで3番のインデックス番号の値が選択された場合、コンボボックスBの0~6番のうち、4~6番の値だけを選択できるように表示し、残りの0~3番を非表示にして選択できないようにする。

_lemon2003_👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s_george

2018/08/21 23:11 編集

コンボボックスAおよびコンボボックスBの値はシートから参照していますでしょうか? その辺の状況をお聞かせ(追記)ください。
Yoshikun_0945

2018/08/22 08:25

コンボボックスの値はシートから参照せずに、任意の値を設定しています。
Yoshikun_0945

2018/08/22 08:26

例:コンボボックスB.addItem = "○○"
guest

回答1

0

ベストアンサー

このようなことでよろしいのでしょうか。

vba

1Dim Indexes(1 To 6) As String 2 3Private Sub UserForm1_Initialize() 4 Dim i As Integer: i = 0 5 Dim l As Integer: l = UBound(Indexes) 6 7 '' この場合は、テストのため、indexと同じ値を代入 8 For i = 1 To l 9 Indexes(i) = i 10 Next i 11 12 Debug.Print Indexes 13 14 '' コンボボックスに値を追加 15 With ComboBox1 16 i = 0 17 l = UBound(Indexes) 18 19 For i = 1 To l 20 .AddItem (Indexes(i)) 21 Next i 22 End With 23End Sub 24 25 26Sub init() 27 Dim i As Integer: i = 1 28 Dim l As Integer: l = UBound(Indexes) 29 30 '' この場合は、テストのため、indexと同じ値を代入 31 For i = 1 To l 32 Indexes(i) = i 33 Next i 34 35 With ComboBox1 36 '' コンボボックスのリセット 37 .Clear 38 39 i = 1 40 l = UBound(Indexes) 41 42 43 '' コンボボックスに値を追加 44 For i = 1 To l 45 .AddItem (Indexes(i)) 46 Next i 47 End With 48End Sub 49 50Private Sub CommandButton1_Click() 51 init 52End Sub 53 54 55Private Sub ComboBox1_Change() 56 Dim SelectedIndex As Integer: SelectedIndex = ComboBox1.ListIndex + 1 + 1 57 58 With ComboBox2 59 .Clear 60 61 Dim i As Integer 62 Dim l As Integer: l = UBound(Indexes) 63 64 For i = SelectedIndex To l 65 .AddItem Indexes(i) 66 Next i 67 End With 68End Sub 69

'' この場合は、テストのため、indexと同じ値を代入
のところを書き換えてうまいことしてください。

投稿2018/08/22 01:25

_lemon2003_

総合スコア274

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問