失礼いたします、コンボボックスを連動させるプログラムを書いているのですがうまく連動しません、よろしければお知恵をお貸しくださいませ
コードを書くにあたりの条件は、開発はVisual Basic 2005のVisual Basic
データベースから呼び出す場合ならAccess 2003を使用(今現在は使用しないで開発しています)
Access内でコンボボックスを、Excelでコンボボックスをなどはしません…今回はVBでコンボボックスを連動させたい
今回ちょっと公に出来ない箇所があり記号で伏せさせていただきますが、記号は日本語が入ります
Form1でload(ロードってこれであってましたっけ?)部分に以下を記載
dim strdata as string = {"●●","●●","●●"}
(すみません、あと一文あったのですがちょっと思い出せないので)
それで連動するcomobox2には以下を記載
dim strdata as string = {"●●","●●"}
dim i as integer
select case strdata(i)
case 0
combobox2.item.addrange("●△ ×")
combobox2.item.addrange("●△ ×")
combobox2.item.addrange("●△ ×")
case 1
combobox2.item.addrange("●△ ×")
combobox2.item.addrange("●△ ×")
combobox2.item.addrange("●△ ×")
となり、combobox1で最初の●●が選ばれればcombobox2のcase0を表示させるようにしたいと思っていますが上手く表示が出ません
今週中に仕上げなければいけないので昨日今日と色々調べてみたのですが、VBAやAccess・Excel関係が殆どでVBのが見つからずAccessやExcelのを見ても上手くいかなかったのと、解説が良く分からなかったので、分かりやすく解説をお願いします
No.2ベストアンサー
- 回答日時:
これは、Select Case の使い方自体の問題ですね
コンボボックスの連動はそのあとの話です
普通しませんが例として
Select Case "B"
Case "A"
MsgBox "Aです"
Case "B"
MsgBox "Bです"
Case Else
MsgBox "どちらでもありません"
End Select
つまり、Select Caseで指定した内容と一致したCaseに書かれた処理を行います
Select Caseは
Select Case Ifの左側
Case Ifの右側
と思えば良いんです
示されたコードの場合
Select Case strdata(i) を使うなら、Case "●●" ですね
case 0 で判定したい場合は、Select Case i です
また、
回答にあった Case conbobox1.text("●●") としたければ
Select Case conbobox1.text("●●") です
応用技として
Select Case True
Case strdata(i) = "●●"
MsgBox "Aです"
Case strdata(i) = "△△"
MsgBox "Bです"
Case Else
MsgBox "どちらでもありません"
End Select
とやって「複数のIf文の中から一つの条件に一致すれば他は不要で優先順位がある場合」と言う書き方もできます
これは
一致したCase以外実行されない
先に一致したCaseが優先
を利用してます
一応参考まで
>Select Case strdata(i) を使うなら、Case "●●" ですね
>case 0 で判定したい場合は、Select Case i です
>また、
>回答にあった Case conbobox1.text("●●") としたければ
>Select Case conbobox1.text("●●") です
上記2点を応用して記載したところ無事動きました
>一致したCase以外実行されない
>先に一致したCaseが優先
今回これが起きてしまうとデモ版とはいえ提出できないのですが、上記のもので何とか以上の点を克服できました
ご回答ありがとうございました
No.1
- 回答日時:
select case strdata(i)
の意味がおわかりでしょうか?
strdataには{"●●","●●","●●"}をセットしていますよね?
ということは
case 0やcase 1にはマッチすることはあり得ないので連動しないのだと思います。
これがcase "●●"のように書いている場合は式が評価され動作すると思います。
早速ありがとうございます
seclect case strdataはstrdataの中身のどれかが選ばれ
それで最初の●●が選ばれたら、1番目のcaseを実行させるということでよいでしょうか
caseに書くということですが、その際conbobox1.text("●●")のように書かなくていいのでしょうか?
case 0ではなくじかにcase "●●"と記載してしまってよいのでしょうか?
これがコンボボックス3個になって3個とも連動させるときも同様にして書けばよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) Excel コンボボックス バックカラー 1 2023/02/18 08:06
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBでコンボボックスとテキストボックスの連係
Visual Basic(VBA)
-
同じコンボボックスを二つ以上作る方法
Visual Basic(VBA)
-
ComboBoxとListBoxとの連動
Visual Basic(VBA)
-
-
4
テキストボックスの中身をリセット(クリア)したい
Visual Basic(VBA)
-
5
ラベルを表示したり非表示にしたりしたい
Visual Basic(VBA)
-
6
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
7
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
8
コンボボックスの文字によるif文の作成
Visual Basic(VBA)
-
9
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こうもりの撃退法
-
2次元配列を返す関数について
-
C#を勉強していて、指定したフ...
-
sublimit textっていうエディタ...
-
演奏記号の・・・・
-
三項でたとえば交換って
-
他のフォームから別のフォーム...
-
C言語のOpenGLで複数のテクスチ...
-
VB.NETでのイベントの途中終了
-
VS CodeでTEXファイルにPDF形式...
-
VBAでcallで呼び出したsubを終...
-
再帰呼び出し
-
エクセルVBAでテキストボッ...
-
タイムアウトする仕組みを作りたい
-
Excel ユーザーフォームで計算 ...
-
【VB6.0】 あるフォームから他...
-
C#のループでtextboxに値を入れ...
-
C言語のサフィックスについて
-
【VBS】クリップボード操作につ...
-
VB.NETのテキストボックスで、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二点の座標から距離や角度を求...
-
エクセル・VBAでテキストボック...
-
複数条件のオートフィルタ(VBA)
-
VC++ (byte)(col & 0xFF) の意味
-
VB.NET)コンボボックスの連動に...
-
エクセルのVBAでの7×7の魔方陣...
-
検索結果の指定列をリストボッ...
-
for文の質問です。
-
VBAにおけるニュートン法
-
テキストファイルの読み込みと...
-
カラーの16進表記の足し算
-
2次元配列を返す関数について
-
一行飛ばしで合計
-
どいつもこいつもbot3かよ
-
小数点以下五桁一致の判定
-
こうもりの撃退法
-
4変数の非線形方程式のときかた
-
ドラゴン曲線を再帰で書く
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
おすすめ情報