コンボボックスにて
Combo1(0)のリスト
"A"
"B"
"C"
Combo1(1)のリスト
"A"
"B"
"C"
Combo1(2)のリスト
"A"
"B"
"C"
Combo1(3)のリスト
・
・
・
と複数のコンボボックスを用意し、それらのコンボボックスにおいて表示するの内容を全て同じ内容にします。この時、例えばCombo1(0)で"A"が選択されると、他のコンボボックスでは"A"がリストに表示されなくなる、またCombo1(0)にて"A"を選択解除すると他のコンボボックスにおいて再度"A"がリストに表示されるという様に、同じリストを持つ複数のコンボボックスにおいて、重複選択できないように表示/非表示を切り替えたいのですが上手い方法が思いつきません。分かる方がおられましたら御教授宜しくお願いします。
No.2ベストアンサー
- 回答日時:
このロジックですと
選択項目数<=コンボボックスの数
となっている場合、何も出来なくなってしまうコンボボックスが出来ますね。
ですので私でもpalmmyさんと同じように考えます。
それはともかく、
>If Combo1(i).List(Combo1(i).ListIndex) = Combo1(j).List(Combo1(j).ListIndex) Then...
が大変なのは、オブジェクトとそのプロパティに複数回アクセスしているからです。
この場合、「コンボボックスの中身・順番は全て一緒」なのですよね。
だとするとListIndexを比較するだけで済みそうですけど。
というより、そうすべきでしょう。
コメント有難うございます。
>このロジックですと
選択項目数<=コンボボックスの数
となっている場合、何も出来なくなってしまうコンボボックスが出来ますね。
確かにそうですね。重複させないことばかりに気をとられてしまっていて気がついていませんでした。
>この場合、「コンボボックスの中身・順番は全て一緒」なのですよね。
だとするとListIndexを比較するだけで済みそうですけど。
この方法で簡単に作ることが出来ました。有難うございます。おかげさまで処理が全然早くなりました。
No.3
- 回答日時:
こんばんわ。
コンボボックスがフォーカスを得た瞬間とかに、選択肢全体から、既に選ばれたものを削除して、現在選択可能なリストを作って、そのコンボボックスのリストを完全に再構築すれば、できるんじゃないかという気がしますが…。
単純に複数選択可能(MultiSelect)なリストボックスじゃダメなんでしょうか?
ちなみに、エクセル2000のデータの「並べ替え」のダイアログでは、2つ以上のコンボボックスが同じ値を持つことが過ちであるにもかかわらず、それができます。
Collection の Key は重複できないことを利用すれば、重複選択の検出は簡単にできるような気がします。
こんばんは、回答有難うございます。
>コンボボックスがフォーカスを得た瞬間とかに、選択肢全体から、既に選ばれたものを削除して、現在選択可能なリストを作って、そのコンボボックスのリストを完全に再構築すれば、できるんじゃないかという気がしますが…。
なるほど、そういうやり方もあるのですね、勉強になりました。さっそく試してはみたのですが、当方初心者でして削除するところまでしか出来ませんでした。もう少し勉強してから再度挑戦しようと思います。
No.1
- 回答日時:
>上手い方法が思いつきません。
直接の回答ではありませんが、選択後に重複しているかのチェックをして、"すでに選択されています。違う値を選択してください。"とエラーメッセージを表示する方法もあります。
この回答への補足
回答有難うございます。
>選択後に重複しているかのチェックをして、"すでに選択されています。違う値を選択してください。"とエラーメッセージを表示する方法もあります。
コメントして頂いた方法でチェックをかける場合に、
For i = 0 To A
For j = 0 To B
If Combo1(i).List(Combo1(i).ListIndex) = Combo1(j).List(Combo1(j).ListIndex) Then...
上記のような判定方法しか(リストの内容全てについて比較を行い判定)思いつきません。今回使用するリストとコンボボックスの数が多い為、上記の方法だと時間がかかってしまいます。もしもっと良いチェック方法をご存知でしたら御教授して頂けないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS VB.net コンボボックス 2 2022/06/30 20:37
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) EXCELピボットテーブル(複数アイテム) 1 2023/04/27 12:15
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) Excelで質問です。 詳細(写真) ①黄色の部分を全てプルダウンを設定する。 ②リストはG列 ③リ 1 2023/06/16 21:54
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
コンボボックスの一部のアイテムを選択不可能に
C言語・C++・C#
-
コンボボックスの特定項目だけを選択不可に
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
-
4
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
5
VBA コンボボックスの重複削除
Excel(エクセル)
-
6
DataGridViewに複数テーブルのデータをセットしたい
Visual Basic(VBA)
-
7
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
8
ユーザーフォーム、コンボボックスで重複せず選択リストを表示させるには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseのデバッグ中に変数の値...
-
ウォッチ式の文字数制限について
-
VisualStudioのプロパティが表...
-
ラベル内の文字(Caption)を縦...
-
C# DataGridView特定セルの入力...
-
ラベルのスクロール(VB)
-
Vba テキストボックス文字を右...
-
ACCESSのVisibleについて
-
VB.NETでラベルの大きさってど...
-
複数のコンボボックスの項目の...
-
ラベルの文字列の長さが変わっ...
-
C#初心者です。チェックボック...
-
VB6.0でテキストボックスの書式...
-
Labelのプロパティが変更できな...
-
VBSのMsgBoxで文字に色をつけたい
-
ACCESSのラベル内データに下線...
-
ExcelVBA EnableプロパティがF...
-
Notepad++のコメントの色を変え...
-
リストボックス内の文字の配置
-
Win32 API エディットボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ExcelVBA EnableプロパティがF...
-
ラベル内の文字(Caption)を縦...
-
ラベルを表示したり非表示にし...
-
VB.NETでラベルの大きさってど...
-
ラベルの文字列の長さが変わっ...
-
エクセル 画像のプロパティで縦...
-
ラベルのスクロール(VB)
-
三菱タッチパネル小数点以下表...
-
Excel VBA ユーザーフォーム内...
-
Notepad++のコメントの色を変え...
-
チェックボックスの色について
-
ACCESSのラベル内データに下線...
-
VB6.0でテキストボックスの書式...
-
Labelのプロパティが変更できな...
-
ウムラウト文字の表示方法について
-
VBAでMultiPageの色の設定方法は?
おすすめ情報