参照ボタンに検索したい従業員の番号を入力すると、フォームにデータが参照されます。
そこからデータを編集し、編集確定ボタンを押すと表に上書きされるような仕様にしたいです。
しかし、今のコードだと14行のような感じで反映されてしまいます。
![]
参照ボタンの処理
VBA
1 '編集確定ボタンを押したとき' 2Private Sub OkButton1_Click() 3 4 Dim x As Integer 5 With Worksheets("メンバー") 6 For x = 2 To 10 7 Cells(ActiveCell.Row, x).Value = Me.Controls("TextBox" & x).Text 8 Me.Controls("TextBox" & x).Text = "" 9 Next 10 End With 11 12 13End Sub 14 15 '参照ボタンを押した時の処理' 16Private Sub RefBtn_Click() 17 18 'もし参照する値が入力されていなかったら' 19 If Me.IDTextBox = "" Then 20 MsgBox "参照する番号を入力してください。" 21 Exit Sub 22 End If 23 24 'データの参照' 25 Dim rng As Range 26 Dim r As Variant 27 Dim i As Integer 28 With Worksheets("メンバー") 29 30 Set rng = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row) 31 r = Application.Match(Val(IDTextBox.Text), rng, 0) 32 33 For i = 2 To 5 34 Controls("TextBox" & i).Text = .Cells(r + 1, i) 35 Next i 36 If .Cells(r + 1, 6) = "男" Then 37 Man.Value = True 38 Else 39 Woman.Value = True 40 End If 41 42 ComboBox1.Text = .Cells(r + 1, 7) 43 For i = 6 To 8 44 Controls("TextBox" & i).Text = .Cells(r + 1, i + 2) 45 Next i 46 End With 47 48 49End Sub
一応メンバー登録のコードも載せます。
VBA
1 2 '現在作業中のシートを選択' 3 ActiveSheet.Select 4 If Cells(8, 1).Value = 1 Then 'cell値変更あるかも' 5 6 '入力されている一番最後のセルの番号を取得' 7 CellCount = Cells(7, 1).End(xlDown).Row + 1 8 9 'IDTextBoxの値を"従業員番号"の欄に入力' 10 Cells(CellCount, 1).Value = Me.IDTextBox.Value 11 12 '姓を入力' 13 Cells(CellCount, 2).Value = Me.TextBox2.Value 14 15 '名を入力' 16 Cells(CellCount, 3).Value = Me.TextBox3.Value 17 18 'セイを入力' 19 Cells(CellCount, 4).Value = Me.TextBox4.Value 20 21 'メイを入力 ' 22 Cells(CellCount, 5).Value = Me.TextBox5.Value 23 24 '選択した性別を入力' 25 If Man.Value = True Then 26 Cells(CellCount, 6).Value = Me.Man.Caption 27 28 ElseIf Woman.Value = True Then 29 Cells(CellCount, 6).Value = Me.Woman.Caption 30 31 End If 32 33 '交通手段を入力' 34 Cells(CellCount, 7).Value = Me.ComboBox1.Value 35 36 '最寄り駅を入力' 37 Cells(CellCount, 8).Value = Me.TextBox6.Value 38 39 '交通費を入力' 40 Cells(CellCount, 9).Value = Me.TextBox7.Value 41 42 '時給を入力' 43 Cells(CellCount, 10).Value = Me.TextBox8.Value 44 45 46 ElseIf Cells(8, 1).Value = "" Then 47 48 '入力されている一番最後のセルの番号を取得' 49 CellCount = Cells(7, 1).End(xlDown).Row + 1 50 51 'IDTextBoxの値を"従業員番号"の欄に入力' 52 Cells(8, 1).Value = Me.IDTextBox.Value 53 54 '姓を入力' 55 Cells(8, 2).Value = Me.TextBox2.Value 56 57 '名を入力' 58 Cells(8, 3).Value = Me.TextBox3.Value 59 60 'セイを入力' 61 Cells(8, 4).Value = Me.TextBox4.Value 62 63 'メイを入力 ' 64 Cells(8, 5).Value = Me.TextBox5.Value 65 66 '選択した性別を入力' 67 If Man.Value = True Then 68 Cells(8, 6).Value = Me.Man.Caption 69 70 ElseIf Woman.Value = True Then 71 Cells(8, 6).Value = Me.Woman.Caption 72 73 End If 74 75 '交通手段を入力' 76 Cells(8, 7).Value = Me.ComboBox1.Value 77 78 '最寄り駅を入力' 79 Cells(8, 8).Value = Me.TextBox6.Value 80 81 '交通費を入力' 82 Cells(8, 9).Value = Me.TextBox7.Value 83 84 '時給を入力' 85 Cells(8, 10).Value = Me.TextBox8.Value 86 87 End If
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。