• ベストアンサー

UserFormコレクション

UserForm1内に配置されたコントロールを操作するのに、UserForm2を使うことは有りますか。 コレクションで指定する時に・・・UserForm1.Controls("OptionButton1").Value等。 学習教材で、画像はUserForm1だが、コードにはUserForm2と有る。 どうぞ宜しくお願いします。

noname#233045
noname#233045

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.1

>UserForm1内に配置されたコントロールを操作するのに、 >UserForm2を使うことは有りますか。 できないことでもありませんし、珍しくもないと思います。 すこぶるポピュラーな話と思います。 例えば、添付画像のようなコードす。 この例は、 UserForm1のボタン操作して、 UserForm2のlabel表示を変更しています。

noname#233045
質問者

お礼

回答を拝見し考えてみれば、とても馬鹿な事を聞いていました(質問時わかっていなかったのかもしれませんが。。。) 馬鹿にせず丁寧にご回答頂けて感謝しきれません。もう一度よくコードを確認します。

関連するQ&A

  • OptionButtonの文字部分の点々枠が残る

    お世話になります。 UserForm内のマルチページに配置したOptionButton右の文字の部分に 選択した際の点々枠が残ったままになってしまいます。 UserFormを閉じる際、  ①OptionButton<n>.Value=0 でチェックを外す  ②UnloadでUserFormを閉じる 上記①②を経て、再度UserFormを立ち上げると ページ2、ページ3のOptionButtonにのみ、点々が残ります。 点々をなくすにはどうしたらよいでしょうか? 宜しくお願い致します。

  • ExcelVBAで指定外のUserFormを閉じる

    複数のUserFormを表示させた時に、 コードで指定したUserForm以外のUserFormを閉じる方法を教えてください。 Unload UserForm1、Unload UserForm2、Unload UserForm3 このような方法では、手間がかかってしまいます。 何か良い方法がありましたら教えてください。 宜しくお願いします。

  • excel VBA 作成したUserFormにoptionButton

    excel VBA 作成したUserFormにoptionButtonを多数配置しています。このUserFormをワークシート上に再表示すとる、チェック項目に入力したチェックが消えてしまいます。消えない方法が解りません。 private sub OptionButton1_Click() Activesheet.Shapes("図形1").Visible=False '図形1表示 End sub private sub OptionButton1_Click() Activesheet.Shapes("図形1").Visible=True  '図形1非表示 End sub  同様な書式で数項目あります。 又、保存したワークシートを読み込んだ場合も同様に出来ないでしょうか。optionButtonのチェック項目が多数あります。チェック項目は図形を表示と非表示です。何方か良い方法がありましたら教えて頂けないでしょうか。宜しくお願いします。

  • Excel2000 Userformについて

    こんばんは、よろしくお願いします。 Userformでラベルを縦に10個配置したとします。この配置したラベルは、左揃え等にする事はできますが、例えば、等間隔に1発に揃える(ワードのような機能)事は無いでしょうか? また、ワード等だと、Ctrlを押しながら矢印キーで微調整ができましたが、Userformでは微調整等をキーボードから出来ないでしょうか? 多くのラベルやチェックボックスを配置したいのですが、マウスで目を凝らして配置していくのは、結構大変なので、綺麗に等間隔にできる操作方法がありましたらご教授をお願いします。 ※Excel2000を使用しています。

  • VBAのコントロールなんかをコレクションとして扱える?

    フォームに複数のコントロールを配置したときにその選定によって条件分岐やイベント処理を行いたいときに同じようなコードを羅列する必要が生じました。コントロールをコレクション?(もしかして?クラス?<クラスは全く解っていません>)として、一くくりに扱う方法ってありますか? ご指導のほどよろしくお願いいたします。

  • 【Excel VBA】UserForm上のTextBoxについて

    UserForm上にTextBoxを配置し テキストを入力後Enterを押すことで中身を判定するロジックをKeyUp関数内に設けているのですが、 たまにEnterが反応しないことがあります。 その他のキー入力は入りますし、 Enter自体も一旦他のウィンドウをアクティブにしてから 再度UserFormをアクティブに戻して入力すると反応します。 Enterが押されるまでは以下のコードにより関数を抜けています。 If KeyCode.Value <> vbKeyReturn Or TextBox1.Value = "" Then Exit Sub 再現性もないので何が原因なのか判りません。 よろしくお願いいたします。

  • エクセルでユーザーフォーム

    エクセルでユーザーフォームやActiveXコントロールを使ったことがないので悩んでいます。ユーザーフォームを呼び出したとき、表示されるオプションボタンの状態をワークシート上の値で設定したいのです。一応以下のようなコードでも大丈夫なようです。 質問は、以下のようにすべてのオプションボタンを列挙しなくとももっと簡単に記述する方法を教えていただきたいのです。また書き方が変だというご指摘があればそれもよろしくお願いします。 Private Sub UserForm_Initialize()   Select Case Sheets("Sheet1").Range("L3").Value     Case 1: Me.OptionButton1.Value = True     Case 2: Me.OptionButton2.Value = True     Case 3: Me.OptionButton3.Value = True     Case 4: Me.OptionButton4.Value = True     Case 5: Me.OptionButton5.Value = True     Case 6: Me.OptionButton6.Value = True     Case Else      Me.OptionButton1.Value = False      Me.OptionButton2.Value = False      Me.OptionButton3.Value = False      Me.OptionButton4.Value = False      Me.OptionButton5.Value = False      Me.OptionButton6.Value = False   End Select End Sub

  • UserForm自体を変数でループ化したいのですが・・

    質問をさせてください。 USERFORMを使い、処理を行っているのですが USERFORM自体を変数とし、それを元にループで 処理をしたいと思っています。 こんな感じで変数を!!→UserForm(t) 例えば下記のような処理を・・ Private Sub UserForm_Activate() Do While t <= 10 And Cells(t, 1) <> "" Select Case t Case 1 To 3 'UserForm1処理 With UserForm1 UserForm1の処理 (リストやテキストボックスにエクセルシートの値を代入させています。) ※こんな感じで。。 .Controls("textbox" & 1) = Cells(t, 1).Value End With Case 4 To 6 'UserForm2処理 With UserForm2 UserForm2の処理 (リストやテキストボックスにエクセルシートの値を代入させています。) ※こんな感じで。。 .Controls("textbox" & 1) = Cells(t, 1).Value End With Case 7 To 10 'UserForm3処理 With UserForm3 UserForm3の処理 (リストやテキストボックスにエクセルシートの値を代入させています。) ※こんな感じで。。 .Controls("textbox" & 1) = Cells(t, 1).Value End With End Select Loop end sub このような処理が一つのUserFormを開くと全てのUserForm間での処理がズラーッとあるわけですが処理内容は 変わりませんのでUserForm自体を変数で対応すれば書式もスッキリしてみやすく もし何かトラブルが生じてもすぐに対応できることから質問をさせていただきました。 よろしくお願いいたします。

  • 入力エラー時にメッセージを出す方法

    下記コードなのですが、入力ミスでもフォームが開いてしまいます。 5602、5662以外の場合、メッセージを出して、正しく入力を求めるようにしたいのですが、どのようにしたらいいでしょうか。 Sub 推進区() s = InputBox("納入便を選択して下さい。" & Chr(13) & _ "推進区:5602" & Chr(13) & "推進区:5662", "納入便選,s) If s = "5602" Then UserForm1.OptionButton3.Visible = False UserForm1.TextBox1.Value = 5602 Else UserForm1.OptionButton3.Visible = True UserForm1.TextBox1.Value = "5662" End If UserForm1.Show End Sub

  • エクセルVBA コントロールに変数を入れたい

    エクセルvbaです。 UserForm1.テキスト1.Valueを UserForms("UserForm1").Controls("テキスト1").Value のような形式でコードを書くことは可能でしょうか? UserForms("UserForm1").Controls("テキスト1").Value だとエラーになってしまいます。 accessでは Forms("Form1").Controls(“テキスト1”).Value と言う形式が可能ですが、エクセルでは不可能なのでしょうか? エクセルでは Forms("Form1").Controls(“テキスト1”).Value UserForm ("Form1").Controls(“テキスト1”).Value でもエラーになってしまいます。 UserForm1.Controls("テキスト1").Valueは コードが通りましたが、フォームの部分に変数を入れる事ができません。 ご教授よろしくお願いします。