No.5ベストアンサー
- 回答日時:
こんばんは。
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
No.4
- 回答日時:
ANo3です
>シートにリストを予め用意しておくと~~選択するようにになってしまう為
>1対になっているsheet1に1行づつレコードが足され累積していった
結局のところ、「シートにあるリスト」を表示する方式なんですよね?
元データとは別に、整理されたリストが用意されているものとして考えるなら・・・
>には重複せず佐藤、鈴木、田中が出るようなコードとしたいです。
実行時に重複を省くのではなくて、そのシートに登録する時(何らかのタイミングで転記をしているのでしょうから)に重複しないようにすれば良いだけではないでしょうか?
・・・っていうことを、ANo3で書いたつもりなんですけど。
No.3
- 回答日時:
こんにちは
コンボボックスの表示内容のリストは、配列を指定したり、AddItemで個々に設定する方法と、シートの範囲をリストとして指定する方法があると思います。
個別に設定する場合は、設定する際に重複を省けば良いでしよう。
シートの範囲等で指定する場合は、重複の存在するリストをそのまま利用するのではなく、一旦、重複を省いたリスト(または配列)を作成して、そちらを参照するようにすれば良いだけではないでしょうか?
項目数が非常に多い場合は、毎回ゼロから重複を省く処理をしていたのでは効率が悪いので、元のリストにアイテムを追加(?)した時に、同時に「重複を省いたリスト」にもバックグラウンドで反映するなどというようにしておくのが良いかもしれません。(重複している場合は追加されない)
とはいっても、コンボボックスでリスト表示する程度の数であれば、それほどの数とも思えませんので、毎回処理したところで大したことはなさそうですね。
フォローの回答有難う御座います。
シートにリストを予め用意しておくと膨大なリストからたくさんスクロールしてから選択するようにになってしまう為1対になっているsheet1に1行づつレコードが足され累積していった「氏名」だけがユーザーフォームの追加入力可能なコンボボックスにリストとして表示させるようにしたいです。
画像の「氏名」は例えば1対になっているsheet1、A列、A1は見出し「氏名」としてA2,佐藤、A3,鈴木、A4,田中、A5,佐藤、A6,鈴木と1行づつレコードとして追加されていきます。
ユーザーフォーム、コンボボックスの選択リストには重複せず佐藤、鈴木、田中が出るようなコードとしたいです。
多分A列をEndxlupでデータを拾ってフィルターして表示させるのかなと思っています宜しく御願いします。
No.2
- 回答日時:
#1です。
結局「どこに」「何が」「どのように」の説明がないので何ともいえません。
同じ説明を繰り返してやりたいことを書くばかりでは話が前に進みません。
> 同じ氏名の場合があった時にコンボボックスリストが重複して表示されな
> いように
マスタ情報を持たずに 入力したデータをリストとして利用しようと考えるか
ら上手くいかないのでは? 何故マスタを作るという大事な作業を 省こうと
しているのでしょうか。
Excel2003でも使うなら 重複を省くためには連想配列を使う必要があります。
Excel(エクセル)VBA入門:重複なしのデータを抽出するいろいろな方法
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vb …
マスタなしでやるなら 入力の度に 重複なしリストを抽出し直すということに
なるかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Excel(エクセル) エクセルで重複データを行ごとに抽出したい 4 2022/12/05 08:18
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- Excel(エクセル) EXCELピボットテーブル(複数アイテム) 1 2023/04/27 12:15
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Visual Basic(VBA) VBAリストボックスで選択した後 5 2022/11/07 17:50
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
アクセスのコンボボックスの重複をなくすには?
Access(アクセス)
-
アクセスのコンボボックスのデータについて
Access(アクセス)
-
フォーム上のリストボックスに重複して表示しています
Visual Basic(VBA)
-
-
4
VBA コンボボックスの重複削除
Excel(エクセル)
-
5
Excel vba でコンボボックスの絞り込みで重複リストをなくしたい
Visual Basic(VBA)
-
6
アクセスVBAのMe!と[ ]
Access(アクセス)
-
7
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
Excel(エクセル)
-
8
Access サブフォームでの選択行の取得
その他(データベース)
-
9
Accessのフィルタ検索でデータの重複除外をしたい
その他(データベース)
-
10
ユーザーフォーム 3つのコンボボックスの連動について教えてください。
Excel(エクセル)
-
11
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
-
12
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
13
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
14
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
15
excelのリストボックスで選択した項目をアクティブセルに入力方法
Excel(エクセル)
-
16
EXCEL VBAのコンボボックスに取り込むリストについて
Excel(エクセル)
-
17
VBA コンボボックスで選んだ値を取得するには
その他(Microsoft Office)
-
18
Access2010 Enterで次テキストへ移動
その他(Microsoft Office)
-
19
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
20
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
”ギリギリ” を丁寧に言うには
-
この文字の変換方法を教えて
-
「初め」か「始め」どちら?
-
「取組」と「取り組み」の違い
-
「50万円を超える」は50万円以...
-
「皆んな」という表記に違和感...
-
「ん」一文字の漢字はありますか?
-
「時間がたつ」の「たつ」は、...
-
次頁はなんと読みますか?
-
木へんに夕に卩ってどう読みま...
-
「基」と「元」の使い方
-
エクセルでセルの中身が漢字か...
-
「一つひとつ」とどうして前は...
-
「~していただきまして、あり...
-
この言葉、「漢字」ありますか。
-
数を数える、「正」の字。読み...
-
0(ゼロ)とO(オー)の書き分け...
-
文章で対象者を「人」というか...
-
対策を採る?取る?
-
お礼は「有難う御座います」で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「初め」か「始め」どちら?
-
”ギリギリ” を丁寧に言うには
-
この文字の変換方法を教えて
-
「取組」と「取り組み」の違い
-
「時間がたつ」の「たつ」は、...
-
「50万円を超える」は50万円以...
-
「ん」一文字の漢字はありますか?
-
木へんに夕に卩ってどう読みま...
-
「一つひとつ」とどうして前は...
-
「基」と「元」の使い方
-
「~していただきまして、あり...
-
次頁はなんと読みますか?
-
“わく”に宛てる漢字について
-
魚へんの下の点々が大
-
日差しが差す(陽射しが射す)...
-
きへんに毎と書くと梅ですが、...
-
エクセルでセルの中身が漢字か...
-
0(ゼロ)とO(オー)の書き分け...
-
「お客様お一人おひとり」と書...
-
お礼は「有難う御座います」で...
おすすめ情報