| 
    
     |  | ▼ちーすけ さん: > Range("B") = FoundCell.Next      '←ここの部分
 >ここの部分でやりたいことは、idを入力するとセルのB列に名前が表示されるようにし、
 > 次にidが入力されたら下の行に名前を表示させるようにしたいです。
 > 名前の表示自体は、T列にidを書いておき、隣のセルを読み込ませて表示させるようにしました。
 
 ごめんなさい。↑説明してもらってもまだ分からないのですが?
 TextBox の id がA列にあるか、まだかで、場合分けし、
 idがまだ未記入の時(countifが 0 を返すとき) だけ
 T列を検索して id を見つけ、U列の対応する「名前」を取得。
 「名前」をB列に書き込み、C列に 時刻を記入する。
 という処理順でいいような気がするのですが?
 
 Private Sub CommandButton1_Click()
 Dim FoundCell As Range
 Dim rngID As Range
 Dim Col As Integer
 Dim id As String
 
 'TextBox1 に入力された名前を変数idに代入
 id = TextBox1.Value
 With Worksheets("Sheet1")
 'A列に このIDが記載済みか新規か調べる
 '新規IDのばあい
 If WorksheetFunction.CountIf(.Range("A:A"), id) = 0 Then
 'A列最終行の取得
 Set rngID = .Range("A" & .Rows.Count).End(xlUp).Offset(1)
 rngID.Value = id '番号出力
 'idに対応する名前をB列に表示
 Set FoundCell = Range("T:T").Find(id, , xlFormulas, xlWhole)
 If FoundCell Is Nothing Then
 MsgBox "番号がありません"
 Exit Sub
 End If
 rngID.Offset(, 1).Value = FoundCell.Offset(, 1).Value '名前出力
 Col = 3 'C列
 
 Else '記載済みのばあい
 '退勤処理
 Set rngID = .Range("A:A").Find(id)
 Col = 4 'D列
 End If
 End With
 '時刻出力
 With rngID.Item(1, Col)
 .Value = Now() '時刻出力
 .NumberFormat = "yy/mm/dd hh:mm" 'セルの書式設定
 End With
 
 TextBox1.Value = ""
 TextBox1.Select
 
 MsgBox "完了"
 
 End Sub
 
 問題あったら、レス下さい。
 
 |  |