![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
コンボボックスにて
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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
エクセルVBAでコンボボックスの非表示について
iOS
-
コンボボックスの一部のアイテムを選択不可能に
C言語・C++・C#
-
コンボボックスでドロップダウンリストにしたときに・・・・
Visual Basic(VBA)
-
-
4
ListViewで、非表示列って作れますか?
Visual Basic(VBA)
-
5
VB6 配列を初期化したい
Visual Basic(VBA)
-
6
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
7
初期フォーカスについて
Visual Basic(VBA)
-
8
VBの画面サイズについて
Visual Basic(VBA)
-
9
他のモジュールのプロシージャの呼び出したい。
Visual Basic(VBA)
-
10
Visual Basic 6.0 コンボボックスのChangeイベントが発生しません
Visual Basic(VBA)
-
11
正整数の半角数字かどうか判定する
Visual Basic(VBA)
-
12
vb6のコンボボックスの操作について
Visual Basic(VBA)
-
13
コンボボックスの特定項目だけを選択不可に
Visual Basic(VBA)
-
14
UPDATEで既存のレコードに文字列を追加したい
その他(データベース)
-
15
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ステータスバーコントロールの...
-
パソコンの文字の色の変え方
-
エクセル 画像のプロパティで縦...
-
Dreamweaver CS4でテキストカラ...
-
eclipseのデバッグ中に変数の値...
-
実行時エラー 438になった時の...
-
パソコンへの「Dropbox...
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームを表示中にシ...
-
ユーザーフォームに別シートか...
-
エクセルVBAでオプションボタン...
-
どう増強すべきか
-
カメラスクロールするのを動画...
-
コンボボックスの文字によるif...
-
worksheetFunctionクラスのVloo...
-
ExcelVBAのユーザーフォームの...
-
Microsoft Formsの「個人情報や...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ラベルの文字列の長さが変わっ...
-
ExcelVBA EnableプロパティがF...
-
MATLABのグラフで軸目盛りのフ...
-
VB.NETでラベルの大きさってど...
-
ラベルを表示したり非表示にし...
-
ラベルのスクロール(VB)
-
ラベル内の文字(Caption)を縦...
-
三菱タッチパネル小数点以下表...
-
ListViewでの行全体の選択
-
ACCESSのラベル内データに下線...
-
Notepad++のコメントの色を変え...
-
C#初心者です。チェックボック...
-
スプレッドシートの列名変更の...
-
TextBox内で違う色の文字を表示...
-
VBAでMultiPageの色の設定方法は?
-
Windowsのカーソルを変更
おすすめ情報