[[20120501145417]] 『Withについて』(aki) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Withについて』(aki)
こんにちわ。宜しくお願いします。

 以下のような構文があります
 With ComboBox4
    .Style = fmStyleDropDownCombo
    .ListRows = 10
    .RowSource = Worksheets("データリスト").Range("おいうえお順").Address
End With

 With ComboBox5
    .Style = fmStyleDropDownCombo
    .ListRows = 10
    .RowSource = Worksheets("データリスト").Range("おいうえお順").Address
End With

 With ComboBox6
    .Style = fmStyleDropDownCombo
    .ListRows = 10
    .RowSource = Worksheets("データリスト").Range("おいうえお順").Address
End With

 With ComboBox7
    .Style = fmStyleDropDownCombo
    .ListRows = 10
    .RowSource = Worksheets("データリスト").Range("おいうえお順").Address
End With

 With ComboBoxを4つ連ねたいのです
もちろんこのままでも動きますが
スマートになりますでしょうか?    2012/05/01 15:00 (aki)

 Private Function ctlStyle(ByVal ctl As Control)
     With ctl
        .Style = fmStyleDropDownCombo
        .ListRows = 10
        .RowSource = Worksheets("Sheet1").Range("A1:A10").Address
     End With
 End Function

上記のような関数を作って、メインのプロシージャ内で

     ctlStyle Me.ComboBox1
     ctlStyle Me.ComboBox2
     ctlStyle Me.ComboBox3
     ctlStyle Me.ComboBox4

上記のように関数を実行するのが私の好みかな。
(みやほりん)


 こちらは単純なループ案です。
 
Dim i As Long
For i = 1 To 4
   With Me.Controls("combobox" & i)
      .Style = fmStyleDropDownCombo
      .ListRows = 10
      .RowSource = Worksheets("データリスト").Range("おいうえお順").Address
   End With
Next
 
(Jera)

 jeraさんともろかぶり。

    Dim strRs As String
    Dim i As Long

    strRs = Worksheets("データリスト").Range("おいうえお順").Address

    For i = 4 To 7
        With Me.Controls("ComboBox" & i)
            .Style = fmStyleDropDownCombo
            .ListRows = 10
            .RowSource = strRs
        End With
    Next

 (ぶらっと)

みやほりん様 Jera様 ぶらっと様
早急に有難う御座います

jeraさんともろかぶり。

 って事は、それだけ一般的って事ですね
本当に有難う御座います
精進します                  2012/05/01 15:55 (aki)


 ありゃ、ぶつかって一足遅いけど。
 >スマートになりますでしょうか?
 コードの速さ的には、akiさんのコードの方が速いと聞きます。
 速さか、見た目の選択でしょうが、やはり見た目を選択でしょうね。
 BJ


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.