|    | 
     ▼ちーすけ さん: 
> 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 
 
問題あったら、レス下さい。 
 | 
     
    
   |