VBA閻魔帳 実用編
Controlsプロパティを使って記述の簡略をしよう
フォームを作成して記述するとき、罠におちいったのは、
"ComboBox" & "i"
あるいは
ComboBox & "1"
といった使え方ができるのではないかと思い、いろいろと試行錯誤してみたのですが
どうもこうもうまくいかん。
結局仕方がないので、次のような書き方をしておりました。
ComboBox1.AddItem "A"
ComboBox1.AddItem "B"
・
・
ComboBox2.AddItem "A"
ComboBox2.AddItem "B"
・
・
ComboBox3.AddItem "A"
ComboBox3.AddItem "B"
・
・
ComboBox2.AddItem "A"
ComboBox2.AddItem "B"
・
・
まぁ これでも 結果はおなじなのですが、記述がやたら長くなるのでほとほと困っておりました
或る日、電脳oyajiさんに教えてもらったのが次の.Controlsプロパティです
oyajiさんが神様に思えましたな^^
上の記述を次のようにまとめることができます
例1
For i = 1 To 3
With Me.Controls("ComboBox" & i) ' With Controls("ComboBox" & i)でも可
.AddItem "A"
.AddItem "B"
.AddItem "C"
.AddItem "D]"
End With
Next
(ME.はなくてもOKです。小生あまり詳しいことはわかりませんが MEを使用するひとが多いです
なくてもERRORにはなりません)
例2
For i = 1 To 3
With Me.Controls("ComboBox" & i)
Worksheets(1).Cells(i,1)=.value
End With
Next
コンボボックスの値をエクセルのシートのセルに値を代入したいときには
このような記述をすると すっきりしていいのではないでしょか^^