teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

8

こちらかがいいかも

2020/05/04 23:16

投稿

退会済みユーザー
answer CHANGED
@@ -110,6 +110,8 @@
110
110
  ```
111
111
 
112
112
  Listboxで作るとこんな感じでしょうか・・・・。
113
+ コードはコンボがリストボックスに
114
+ なっただけでほぼ同じです。
113
115
 
114
116
  ![Listbox](5a04ba6fc3866767ce800c3ddae2e848.png)
115
117
 

7

こちらかがいいかも

2020/05/04 23:16

投稿

退会済みユーザー
answer CHANGED
@@ -108,6 +108,11 @@
108
108
 
109
109
  End Sub
110
110
  ```
111
+
112
+ Listboxで作るとこんな感じでしょうか・・・・。
113
+
114
+ ![Listbox](5a04ba6fc3866767ce800c3ddae2e848.png)
115
+
111
116
  <初回の投稿>
112
117
  拝見しました。チェックボックスの組み合わせですがチェックボックスは複数選択が可能なので
113
118
  現実的ではないような気がします。

6

こちらかがいいかも

2020/05/04 15:35

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,6 @@
1
1
  こんばんは。少し強引ですがコンボボックスの連動のみCollectionを使って作ってみました。
2
+ あまり時間をかけれずコードが汚いので、調整をお願いします。
2
- 今回は、オートフィルターのデータ集計方法はふれていません。
3
+ また。今回は、オートフィルターのデータ集計方法はふれていません。
3
4
 
4
5
 
5
6
  ![コンボボックスの連動](7b09ad60e2fabab5de89f061a591805e.png)
@@ -7,8 +8,11 @@
7
8
  メインシート:master
8
9
  セルA列~D列
9
10
  Userform1
10
- Combobox1,Combobox2,Combobox3
11
+ Combobox1:商品名
12
+ Combobox2:サイズ
13
+ Combobox3:産地
11
14
 
15
+
12
16
  ```VBA
13
17
  Private Sub ComboBox2_Change()
14
18
 

5

こちらかがいいかも

2020/05/04 15:04

投稿

退会済みユーザー
answer CHANGED
@@ -1,11 +1,13 @@
1
- こんばんは。少し強引ですがコンボボックスの連動部分のみ
1
+ こんばんは。少し強引ですがコンボボックスの連動のみCollectionを使って作ってみました。
2
- 入力ムをCollectionを使っ作ってみした
2
+ 今回は、オートィルタのデータ集計方法はふれせん
3
- まずは、コードを上げさせていただきます。
4
3
 
4
+
5
5
  ![コンボボックスの連動](7b09ad60e2fabab5de89f061a591805e.png)
6
6
 
7
7
  メインシート:master
8
8
  セルA列~D列
9
+ Userform1
10
+ Combobox1,Combobox2,Combobox3
9
11
 
10
12
  ```VBA
11
13
  Private Sub ComboBox2_Change()

4

こちらかがいいかも

2020/05/04 15:00

投稿

退会済みユーザー
answer CHANGED
File without changes

3

こちらかがいいかも

2020/05/04 14:53

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,12 @@
1
+ こんばんは。少し強引ですがコンボボックスの連動部分のみ
1
- こんばんは。少し強引ですがCollectionを使って作ってみました。
2
+ 入力フォームをCollectionを使って作ってみました。
2
3
  まずは、コードを上げさせていただきます。
3
4
 
5
+ ![コンボボックスの連動](7b09ad60e2fabab5de89f061a591805e.png)
6
+
7
+ メインシート:master
8
+ セルA列~D列
9
+
4
10
  ```VBA
5
11
  Private Sub ComboBox2_Change()
6
12
 

2

こちらかがいいかも

2020/05/04 14:53

投稿

退会済みユーザー
answer CHANGED
@@ -96,6 +96,7 @@
96
96
 
97
97
  End Sub
98
98
  ```
99
+ <初回の投稿>
99
100
  拝見しました。チェックボックスの組み合わせですがチェックボックスは複数選択が可能なので
100
101
  現実的ではないような気がします。
101
102
 

1

こちらかがいいかも

2020/05/04 14:45

投稿

退会済みユーザー
answer CHANGED
@@ -1,8 +1,105 @@
1
+ こんばんは。少し強引ですがCollectionを使って作ってみました。
2
+ まずは、コードを上げさせていただきます。
3
+
4
+ ```VBA
5
+ Private Sub ComboBox2_Change()
6
+
7
+ Dim MyData3 As New Collection
8
+ Dim cnt3 As Long
9
+ Dim i3 As Long
10
+
11
+
12
+ cnt3 = Sheets("master").Range("A1").CurrentRegion.Rows.Count
13
+
14
+ 商品名 = ComboBox1.Text
15
+ サイズ = ComboBox2.Text
16
+
17
+ ComboBox3.Clear
18
+
19
+ On Error Resume Next
20
+ For i3 = 2 To cnt3
21
+
22
+ If Sheets("master").Range("B" & i3).Value = 商品名 Then
23
+
24
+ If Sheets("master").Range("C" & i3).Value = サイズ Then
25
+ MyData3.Add Sheets("master").Range("D" & i3).Value, Sheets("master").Range("D" & i3).Value
26
+ End If
27
+ End If
28
+
29
+ Next i3
30
+ On Error GoTo 0
31
+
32
+ For i3 = 1 To MyData3.Count
33
+
34
+ ComboBox3.AddItem MyData3(i3)
35
+ Next
36
+
37
+
38
+ End Sub
39
+ Private Sub ComboBox1_Change()
40
+ Dim MyData2 As New Collection
41
+ Dim cnt2 As Long
42
+ Dim i2 As Long
43
+
44
+
45
+ cnt2 = Sheets("master").Range("A1").CurrentRegion.Rows.Count
46
+
47
+ 商品名 = ComboBox1.Text
48
+
49
+ ComboBox2.Clear
50
+
51
+ '■重複しない商品名のリストを作成(エラーを無視)
52
+ On Error Resume Next
53
+ For i2 = 2 To cnt2
54
+
55
+ If Sheets("master").Range("B" & i2).Value = 商品名 Then
56
+
57
+ MyData2.Add Sheets("master").Range("C" & i2).Value, Sheets("master").Range("C" & i2).Value
58
+ End If
59
+
60
+ Next i2
61
+ On Error GoTo 0
62
+
63
+ '■商品名のリストを作成
64
+
65
+ For i2 = 1 To MyData2.Count
66
+
67
+ ComboBox2.AddItem MyData2(i2)
68
+ Next
69
+
70
+
71
+ End Sub
72
+
73
+ Private Sub UserForm_Initialize()
74
+ Dim MyData1 As New Collection
75
+
76
+ Dim cnt As Long
77
+ Dim i As Long
78
+
79
+ cnt = Sheets("master").Range("A1").CurrentRegion.Rows.Count
80
+
81
+ '■重複しない商品名のリストを作成(エラーを無視)
82
+ On Error Resume Next
83
+ For i = 2 To cnt
84
+
85
+ MyData1.Add Sheets("master").Range("B" & i).Value, Sheets("master").Range("B" & i).Value
86
+
87
+ Next i
88
+ On Error GoTo 0
89
+
90
+ '■商品名のリストを作成
91
+
92
+ For i = 1 To MyData1.Count
93
+
94
+ ComboBox1.AddItem MyData1(i)
95
+ Next
96
+
97
+ End Sub
98
+ ```
1
99
  拝見しました。チェックボックスの組み合わせですがチェックボックスは複数選択が可能なので
2
100
  現実的ではないような気がします。
3
101
 
4
102
  他の記事ではコンボボックスが連動するように作られているようです。
5
-
6
103
  [Excel VBA 複数(2つ)のコンボボックスに連動するリストを登録する](https://officedic.com/excel-vba-howto-combobox-2lists/)
7
104
 
8
105
  VBA使うならシンプルな方法がいいので、参考にされると良いかと思います。