2016-12-06 14 views
-1

ラジオボタンのグループを持つユーザーフォームがあります。 Oボタンをクリックすると、各ボタンを反復処理します。VBAループUserFormのボタングループ

私はforループでできることがあると思っていました。「For Each button in group」のように!

これを行う方法はありますか?私は配列を通して配列とループにボタンをプッシュすることを決定した

***********

編集。私はこれがより適していることを発見しました。これは、OptionButtonのすべてのプロパティへのアクセスを許可しています。

これを行うより良い方法がある場合は、私はまだ知りたいと思います。私は以下のダグの答えでやってみたかったことだった:GroupNameのは「コントロール」と宣言されたcContでは使用できませんでしたので、これは動作しませんでした

'... within For Each Loop 
    If cCont.GroupName = "GroupB" Then 
     'blah blah blah 
    End If 

返信いただきありがとうございます。

+1

はい、これを行うには多くの方法があります。試したコードで質問を編集できますか? – Comintern

答えて

1
Private Sub UserForm_Initialize() 
      Dim cCont As Control 

      For Each cCont In Me.Controls 
       If TypeName(cCont) = "CommandButton" Or TypeName(cCont) = "OptionButton" Then 
        cCont.Caption = "Boobaloobie" 
       End If 
      Next cCont 

これはまさにあなたが探しているものです。私は、「VBAユーザーフォームGETコントロール」のためのGoogleの検索完全

+0

「制御」が鍵です!これは私が探しているものです!私はGroupNameなどを探していて何も見つからなかった!私はGroupNameがあまりにも一致するかどうかを確認するために、条件に 'And'をスローすることができると思いますか? – Mike

+0

それはあなたのようにそれを解決するあなたの方法のようです:) –

+0

私は非常にuserForms(あなたが推測できない)を使用して新しくて、私はそれを解決するために私の道だと思ったが、そうでないようです。 私がcContを「コントロール」として宣言した場合、私はGroupNameプロパティにアクセスできません。 cContを "OptionButton"として宣言している場合(これはすべてチェックしたいので)、ForループでMe.Controlsをループしようとするときにタイプミスマッチが発生します。 私は何をすべきか正確に教えてもらうつもりはありませんが、私はある方向性が必要ですか? – Mike

1

、これは最上位の結果である私の作品:

http://www.ozgrid.com/VBA/control-loop.htm

Dim control As Control 
For Each control In Me.Controls 

    If TypeName(control) = "RadioButton" Then 

     ' do stuff 
    End If 

Next 
+0

あなたにそれを打つ:P –

+0

@Daiのおかげで答えがbtw、私は彼がそこに最初だったように正しいダグをマークしなければならなかった。 – Mike

関連する問題