Vb2005でSelectedindexをControlsで処理するには?

解決


hige  2006-12-15 21:34:09  No: 97419

最近VBAからVB2005に移行した初心者なんですが
複数のComboBoxのselectedindexをcontrolsで一括処理したいのですが
やり方が分かりません。
VBAなら

for i=1 to 10
   me.controls("ComboBox" & i).listindex =1
next i

で出来るんですが、VB2005で

for i=1 to 10
   me.controls("ComboBox" & i).selectedindex =1
next i

と記述すると"selectedindex は controlのメンバではありません"
というエラーが出ます。
VB自体をまだよく理解していない初心者ですので
どなたか分かり易く教えていただけないですか?
よろしくいお願いします。


アクア  2006-12-19 17:54:16  No: 97420

アクアと申します。よろしくお願いいたします。

さて、ご質問の件ですが、Controlクラスのメンバ一覧にselectedindexというメンバが存在しないからです。
メンバというのは主にプロパティ、メソッド、イベント等を指し、動きなどを制御する項目と理解していいのではないかと思います。
その項目にselectindexは存在していないのです。
VB2005のヘルプで「Control クラス」を選択するとメンバの一覧が表示されますので確認できます。

でも、聞きたいのはエラーメッセージの内容ではないのでしょう?

私はVBAは詳しくないのですが、それでもコントロールの名前(VBAでいうCaptionプロパティ?)から、ComboBoxの指定された項の値を呼び出したいように思えましたが如何でしょうか?


アクア  2006-12-19 17:56:51  No: 97421

訂正
誤:その項目にselectindexは存在していないのです。
正:その項目にselectedindexは存在していないのです。


大吉末吉  2006-12-19 19:40:30  No: 97422

>   me.controls("ComboBox" & i).selectedindex =1
> と記述すると"selectedindex は controlのメンバではありません"
> というエラーが出ます。

型変換をして見ては?

> CType(Me.Controls("ComboBox" & i), ComboBox).SelectedIndex = 1


アクア  2006-12-19 23:41:40  No: 97423

大吉末吉さん

私の場合、ComboBoxを配列にいれる方法かな。
↑不細工だけど簡単。
もちろん型変換も考えてはみましたが…。
↑ちょっと理解を得るには難しいかもしれません。


hige  2006-12-20 01:03:09  No: 97424

>大吉末吉さん
出来ました!ありがとうございました。
型変換について勉強してみます。
>アクアさん
いろいろ分かり易く教えていただいてありがとうございます。
出来れば、配列に入れる方法も教えていただけませんか?
よろしくお願いします。


アクア  2006-12-20 02:30:50  No: 97425

大吉末吉さん  ご挨拶が遅れてしまったようです。すみませんでした。
アクアと申します。  いつも、参考にさせてもらってます。どうぞ宜しくお願い致します。

higeさん

VB2005 WindowsXP Home----------------------------------------------

' コンボボックスコントロールを格納する変数を宣言
Dim ctrComboBox() As ComboBox = _
        {ComboBox1, ComboBox2, ComboBox3, ComboBox4, ComboBox5, _
         ComboBox6, ComboBox7, ComboBox8, ComboBox9, ComboBox10}

For i As Integer = 0 To ctrComboBox.Length - 1

' それぞれ10個のコンボボックスの2番目の値を表示
        ctrComboBox(i).Text = ctrComboBox(i).Items(1).ToString()
Next

-------------------------------------------------------------------

# 私事ですが、サンプル記述している時に、他の方の同じようなコードを発見し!少しほっとしました。^^

できればで結構ですが、higeさんの私もコードが見てみたいです。


hige  2006-12-20 20:36:04  No: 97426

>アクアさん
ありがとうございます。この様なやり方もあるんですね。
大変、勉強になりました。
私のコード件なんですが、まだ人様にお見せできる様なものでは
ありませんので・・・・・・
また分からない事が出てきた時は、よろしくお願いします。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加