質問編集履歴

1

回答いただいた内容から質問文追記。仕様修正および代替案希望。

2020/05/19 04:11

投稿

numerical
numerical

スコア3

test CHANGED
@@ -1 +1 @@
1
- 列挙型の文字列を取得し、ループ回したい
1
+ データベースクラスからComboboxへループ回してItem追加したい
test CHANGED
@@ -1,30 +1,80 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ①UserFormのComboboxのアイテムを条件によって丸ごと入れ替えたい。
3
+ ①UserFormのComboboxのアItemを条件によって丸ごと入れ替えたい。
4
4
 
5
5
  ②UserFormを開く際に条件は確定されている。
6
6
 
7
7
  ③Comboboxに入れたいリストは他のDBクラスに記載。(コードが長くなるため)
8
8
 
9
- DBクラスのリスト形式任意だが、追加、削除、可読性等を考慮したい。
9
+ データベースクラスのItemリスト(文字列)条件ごとにひとまとめにておきたい。
10
10
 
11
+ ⑤データベースクラスのItemリストは今後データが増えることを考慮して編集はしやすくしたい。(実行時に動的な編集はしない。コーディング時のみ編集する)
12
+
11
- Comboboxにアイテムを入れる際はループを回したり、対象リストを丸ごといれたい。
13
+ ComboboxにItemを入れる際はなるべく手作業でコードを編集しなくて良いように、ループを回したり、対象リストを丸ごといれたい。
12
14
 
13
15
 
14
16
 
15
- 方法があれば教えて頂きたく思す。
17
+ 下記の試したことでは実現できなようなので、何か代替案を頂ければす。
18
+
19
+ データベースクラスのItemリストは新規でつくるため、データ格納方法は変えられます。
16
20
 
17
21
 
18
22
 
19
23
  ### 試したこと
20
24
 
21
- 管理しやすくし、他の処理で数値が使えるため、DBクラスには条件数分のEnumを作りアイテム名を列挙しました。
25
+ 管理しやすくし、他の処理で数値が使えるため、データベースクラスには条件数分のEnumを作りアイテム名を列挙しました。
26
+
27
+
28
+
29
+ 'DB class
30
+
31
+ Enum data1
32
+
33
+ aaa=1
34
+
35
+ bbb
36
+
37
+ ccc
38
+
39
+ ・・・・
40
+
41
+ fin
42
+
43
+ End Enum
44
+
45
+
46
+
47
+ Enum data2
48
+
49
+ abab=1
50
+
51
+ bcbc
52
+
53
+ ・・・・
54
+
55
+ fin
56
+
57
+ End Enum
58
+
59
+
22
60
 
23
61
  UsrForm側で、
24
62
 
25
- Combobox.addItem 列挙型.列挙子名(index)
63
+ select case 条件
26
64
 
65
+ case 条件
66
+
67
+  For i=1 to (DB.data1.fin -1)
68
+
69
+  Combobox.addItem DB.data1.列挙子名(index)
70
+
71
+ Next
72
+
73
+ ・・・
74
+
75
+ End select
76
+
27
- みたいな感じにForループでEnum要素数分アイテムを入れようとしましたが、列挙子の文字取得する手段がわからず実現できません
77
+ みたいな感じにForループでEnum要素数分アイテムを入れようとしましたが、ご回答いただいたところ、VBAでは列挙子の文字取得できようでした
28
78
 
29
79
 
30
80
 
@@ -33,5 +83,3 @@
33
83
  ### 補足情報(FW/ツールのバージョンなど)
34
84
 
35
85
  VBA6.5
36
-
37
- ここにより詳細な情報を記載してください。