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

質問編集履歴

1

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

2020/05/19 04:11

投稿

numerical
numerical

スコア3

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