65915


図のようなもの作成しています。  
[![画像の説明をここに入力](https://i.stack.imgur.com/lrjNP.png)](https://i.stack.imgur.com/lrjNP.png)

従業員IDのところに参照したい従業員のIDを入力します。  
参照ボタンを押すと、名前や交通手段などのデータが参照されます。

データの参照をするための文がわからず困っています。  
また、ラジオボタンに参照させる方法も教えていただきたいです。

[code]

    '参照ボタンを押した時の処理'
    Private Sub ReferenceBtn_Click()
    
        'もし参照する値が入力されていなかったら'
        If Me.IDTextBox = "" Then
            MsgBox "参照する番号を入力してください。"
            Exit Sub
        End If
    
        i=
    
        '姓を出力'
        .Cells(i, 2) = Me.TextBox2
    
        '名を出力'
        .Cells(i, 3) = Me.TextBox3
    
        'セイを出力'
        .Cells(i, 4) = Me.TextBox4
    
        'メイを出力'
        .Cells(i, 5) = Me.TextBox5
    
        '性別を出力'
        .Cells(i, 6) =
    
        '交通手段を出力'
        .Cells(i, 7) = Me.ComboBox1
    
        '最寄り駅を出力'
        .Cells(i, 8) = Me.TextBox6
    
        '交通費を出力'
        .Cells(i, 9) = Me.TextBox7
    
        '時給を出力'
        .Cells(i, 10) = Me.TextBox8
    
[/code]


CC BY-SA 4.0
2020-04-24T01:48:39.837
65907
2020-04-24T04:48:23.717
2020-04-24T04:48:23.717
9820
39792
question
vba
VBAでテキストボックスに入力された値のデータを参照したいです。


`Me.IDTextBox.Text`の記述でTextBoxコントロールのデータを参照することができます。(`Me`は省略可能です)

間違えやすいポイントは`IDTextBox`がTextBoxコントロールという入力欄そのものを表すことです。  
一つ一つの入力欄はデータの他にName("IDTextBox"という識別名)、TopやLeft(フォーム内の配置座標)、TopやWidth(コントロールの大きさ)を表す
**プロパティ** を持っています。

例えば`MsgBox IDTextBox.Width`と入力することでIDTextBoxコントロールの幅データを表示できます。  
上記のようにTextも入力されたデータを管理するプロパティのひとつです。

またラジオボタンはチェック状態を`Value`プロパティで管理します。  
`Value = True`ならば選択されている状態です。

複数のラジオボタンをグループ化して管理するために`GroupName`というプロパティも用意されています。  
任意のラジオボタンをチェック状態にすると同一グループ名の他のラジオボタンは全てチェックが外れます。  
性別のみ管理する場合は`GroupName`を設定しなくても普通に動きますが、性別以外にラジオボタンで管理する項目が増えた場合はグループごとに設定が必要です。

[code]

    Private Sub ReferenceBtn_Click()
        If IDTextBox.Text = "" Then
            MsgBox "参照する番号を入力してください。" 
            Exit Sub
        End If
        '1行目から最終行までループ
        For i = 1 To Sheet1.Cells(Rows.Count, 1).End(xlUp) + 1
            'IDが一致する行のみ処理
            Set ID = Sheet1.Cells(i, 1)
            If ID = IDTextBox.Text Then
                'TextBoxのTextプロパティを変更
                TextBox2.Text = Sheet1.Cells(i, 2)
                'OptionButtonのValueプロパティを変更
                If Sheet1.Cells(i, 3) = "男" Then
                    OptionButton1.Value = True
                Else
                    OptionButton2.Value = True
                End If
                Exit Sub
            End If
        Next
    
    End Sub
    
    Private Sub UserForm_Initialize()
        'プロパティウィンドウでGroupNameを設定してもOK
        OptionButton1.GroupName = "Sex" 
        OptionButton2.GroupName = "Sex" 
    End Sub
    
[/code]


CC BY-SA 4.0
2020-04-24T04:47:42.863
65915
2020-04-24T04:47:42.863
9820
65907
answer