質問: ユーザーフォーム、コンボボックスで重複せず選択リストを表示させるには エクセル2003と2007vbaで使用します。 ユーザーフォーム、添付画像項目「氏名」をコンボボックスで重複せず選択リストを表示させるにはどのように記述したら良いでしょうか? 宜しく御願いします。
回答: こんばんは。 vbaのコードを求めていらっしゃるのなら、回答者側としては、 combobox のlist に、どこのシートからどのように重複を許してimport するコードを見せてほしいと言っているわけですね。最近、コードは見せられない、だから文章の説明的な質問の人が増えてきたと思うのです。画像添付でも、相手に伝えられる情報ではないです。 #3/#4さんの話も、#1/#2さんの話も熱心に正答をいただいているのに、解決に向かわないのは、残念です。 >シートにリストを予め用意しておくと膨大なリストからたくさんスクロールしてから選択するようにになってしまう為 2007のコマンドで、重複を排除する方法もありますし、両方なら関数で解く方法もあります。combobox に入れる以上は、千件以上のものを入れるというのは常識的にありえません。 それに、掲示板の回答は、必ずしも、コピー&ペーストで動くコードを提供してくれるとは限りません。それだけは心得ておいてください。 '//'userform モジュール private sub userform_initialize() combobox1.list = makeuniquelist end sub function makeuniquelist() dim objdic as object 'new scripting.dictionary dim i as long, j as long j = 1 set objdic = createobject("scripting.dictionary") with worksheets("sheet1") '2行目から for i = 2 to .cells(rows.count, 1).end(xlup).row if not objdic.exists(.cells(i, 1).value) then objdic.add .cells(i, 1).value, j j = j + 1 end if next end with makeuniquelist = objdic.keys end function