|
▼マナ さん:
最初は以下にしてました。
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then
Label1.Visible = True
TextBox1.Visible = True
Else
Label1.Visible = False
TextBox2.Visible = False
End If
End Sub
※OptionButton2にはこれの2バージョンとしています。
マナさんからのVBAを見て以下に変更しました。
Option Explicit
Private Sub 表示切替()
Dim i As Long
For i = 1 To 5
Controls("Textbox" & i).Visible = Controls("OptionButton" & i).Value
Next
End Sub
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then
Label1.Visible = True
TextBox1.Visible = True
Else
Label1.Visible = False
TextBox1.Visible = False
End If
End Sub
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
Label2.Visible = True
TextBox2.Visible = True
Else
Label2.Visible = False
TextBox2.Visible = False
仮にLabel1〜5と TextBox1〜5を作って
実行してみましたが、非表示から表示はされますが
ボタンを選び直しても、非表示にはなりませんでした。
TextBoxなどを使い分ける必要性ですが
考え方がおかしかったら申し訳ありません。
たとえばですが
ボタン1は社内の人間で
Label1は部署名
TextBox1は部署名
Label2は社員番号
TextBox2は社員番号
Label3は名前
TextBox3は名前となっています。
ボタン2は社外の人間で
Label4会社名
TextBox4は会社名
Label5役職名
TextBox5は役職名
Label3は名前
TextBox3は名前
となっており、名前であるLabel3とTextBox3は共通で使用できるという感じです。
エクセルにそれぞれを書き込ませるつもりですが
名前は同じ列にしますが項目が違うものは列も異なります。
対象者(ボタン)によって入力したい項目(ラベルとテキストボックス)が違うので分けたいんです。
なにせVisibleとEnabledもわかっていないので
Captionを変更でできるとかはよくわかりません。
▼マナ さん:
>▼ボタン さん:
>
>>OptionButton2を選ぶと
>>Label2とTextBox2は表示はされますが
>>Label1とTextBox1は非表示になってくれません。
>>(追加で表示されていく)
>
>どんなコードで試しましたか?
>
>
>>実は本当のユーザフォームは
>>OptionButton1に対して
>>Label1、Label3、Label12
>>TextBox3、TextBox9、TextBox15
>>
>>OptionButton2に対して
>>Label1、Label5、Label15
>>TextBox4、TextBox9、TextBox15
>>となっています。
>>
>
>TextBox3とTextBox4を使い分ける必要があるのですか。
>どちらも、TextBox3を使うのでは、なぜだめなのですか。
>
>Labelについても、Captionを変更するだけではだめなのですか。
|
|