|    | 
     ▼隼 さん: 
 
このコードがやっていることは 
 
入力が「A1」の時のみ実行する。(「B1」への入力時は何もしない) 
で、「A1」が"H"なら C列の「未出力セル」に、「B1」の値をセット 
「A1」が"L"なら D列の「未出力セル」に、「B1」の値をセット 
 
ですので、B1 にいれる前に A1 にいれても、入力のないB1を相手に処理されるだけ。 
その後、B1に何をいれても、処理されません。 
 
もし、「B1」に入力した時に、「A1」の値によって、「B1」の値を 
C列またはD列にセットするなら以下ですね。 
もし、「A1」に入力した時も、「B1」に入力した時も、その時点でのA1やB1の値を相手に 
処理するなら、また別のコードになります。 
 
それと、C10000 といった、固定セル名は使わないほうがいいですね。 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
  Dim S As String 
 
  If Target.Address(0, 0) <> "B1" Then Exit Sub 
  S = Target.Offset(, -1).Value 'A1の値 
   
  Select Case S 
    Case "H": Range("C" & Rows.Count).End(xlUp).Offset(1).Value = Target.Value 
    Case "L": Range("D" & Rows.Count).End(xlUp).Offset(1).Value = Target.Value 
  End Select 
  
End Sub 
 
 | 
     
    
   |