2017-12-31 59 views
0

いくつかのテキストボックスと続行ボタンを使用してUserform2を作成できますか? Userform 2は、別のuserfomr1から選択された値(チェックボックス)に基づいて作成されます。VBA:USerform - 一部のチェックボックスに基づいてユーザーフォームを作成する方法

例1 - ユーザは、すべてのフィールドを選択

enter image description here

Userform2はUserfomr1から選択された値に基づいて作成されます。

enter image description here

+0

ユーザーの観点からは、完全にロードされた画面2が表示されていて、興味のないフィールドを空白のままにするオプションがあります。私にはとにかく最初に別のフォームを通過します。しかし、それは私の個人的な意見であり、誰もがいつも私が奇妙であると言います。そうすれば、他の人々は異なる見方をするかもしれません。 – YowE3K

+1

あなたの答えは「はい、可能です」です。しかし、それは本当に問題ではありませんでした。 –

答えて

3

ミミックこれらのユーザーフォームの構造は、実施例を持っている: あなたは、マクロに新しく追加されたコントロールの適切な名称を監視することを述べてきたようにUserform1 UserForm2

:のTextBox1、TextBox2を... CheckBox1、CheckBox2 ...、CommandButton1_Click .... ect

以下のコードはフォームで使用できます。

新しいモジュールを作成し、このコードを貼り付けます。

Sub formAction() 
' set them to invisible first, it can be done in control properties also. 
UserForm2.TextBox1.Visible = False 
UserForm2.TextBox2.Visible = False 
UserForm2.TextBox3.Visible = False 
UserForm2.TextBox4.Visible = False 

UserForm2.TextBox4.Left = 10 'example of controls movement 
UserForm2.TextBox4.Top = 10 'example of controls movement 

UserForm1.Show 'fire first userform 
End Sub 

は、UserForm1のコードにこれを挿入します。

Private Sub CommandButton1_Click() 
    If UserForm1.CheckBox1.Value = True Then UserForm2.TextBox1.Visible = True 
    If UserForm1.CheckBox2.Value = True Then UserForm2.TextBox2.Visible = True 
    If UserForm1.CheckBox3.Value = True Then UserForm2.TextBox3.Visible = True 
    If UserForm1.CheckBox4.Value = True Then UserForm2.TextBox4.Visible = True 
    UserForm2.Show 

End Sub 

ます。また、コントロールの寸法を操作し、どのように応じて、適切なサイズを決定するために自分自身をユーザーフォームすることができます多くのオプションがユーザーによって選択されます。

コードの方が効率的であるようにするために、この例のためにこれらのコントロールを反復しませんでした。

+0

ありがとうございました@AdamC、あなたがコントロールとユーザーフォームの寸法を設定する方法を学ぶために参照できるサイトがあれば教えてくれます。これは本当に役に立ち、より良い外観と感じるために私のプロジェクトに必要なものです...ありがとうございました – dhanya

+0

そして、私はこのコントロールが選択に基づいてフィールドを並べ替えるのに役立つかどうかを知りたいのです。例えば、チェックボックス3and4を選択した場合、または1と3を選択した場合、 – dhanya

関連する問題