失礼いたします、コンボボックスを連動させるプログラムを書いているのですがうまく連動しません、よろしければお知恵をお貸しくださいませ
コードを書くにあたりの条件は、開発は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
TextBoxに特定の文字のみ入力を許す
Visual Basic(VBA)
-
5
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
6
【VB】コンボボックスにデータベースから取り出した値を入れたい
Visual Basic(VBA)
-
7
コンボボックスの文字によるif文の作成
Visual Basic(VBA)
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数条件のオートフィルタ(VBA)
-
VC++ (byte)(col & 0xFF) の意味
-
C#のループでtextboxに値を入れ...
-
Functionの戻り値を配列にした...
-
VBAで入力数値について
-
他のフォームから別のフォーム...
-
VBA public変数はどのようなこ...
-
マクロ 条件式
-
プロシージャまたは関数の引数...
-
チェックボックスを操作できな...
-
VB.NETでのイベントの途中終了
-
C言語のサフィックスについて
-
VBAでcallで呼び出したsubを終...
-
SavePictureで保存できない
-
プロシージャを呼び出したプロ...
-
【VB6.0】 あるフォームから他...
-
【VBScript】変数のスコープ
-
vbsでスクロール位置を指定して...
-
verilogのcase文
-
VS CodeでTEXファイルにPDF形式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBAでテキストボック...
-
二点の座標から距離や角度を求...
-
VB.NET)コンボボックスの連動に...
-
VC++ (byte)(col & 0xFF) の意味
-
複数条件のオートフィルタ(VBA)
-
検索結果の指定列をリストボッ...
-
線の太さ
-
テキストファイルの読み込みと...
-
VBAにおけるニュートン法
-
2次元配列を返す関数について
-
for文の質問です。
-
4変数の非線形方程式のときかた
-
エクセル ユーザーフォーム ...
-
ドラゴン曲線を再帰で書く
-
VC++2010 大きい桁数をBYTE型配...
-
sublimit textっていうエディタ...
-
エクセルVBAでテキストボッ...
-
VBA public変数はどのようなこ...
-
VBAでcallで呼び出したsubを終...
-
他のフォームから別のフォーム...
おすすめ情報