|
▼みつ さん:
>E5に5/2といれ
>H5の『品名』に文字(例えばリンゴ)を入れると
>開始日の5/2に当てはまるセル(J5)にリンゴと入るようにしたいのですが‥
>
ワークシートのChangeイベントを利用してみては?
以下のコードを該当ワークシートのシートモジュールにコピーし、
E列に「開始日」をいれ、H列に「品名」を入れると、
下のコードが実行されます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 8 Then Exit Sub
Dim ss As String
Dim dt As Variant
Dim dt1 As Date, diff As Long
ss = Target.Value
If Len(ss) < 1 Then Exit Sub
dt = Target.Offset(, -3).Value
If IsEmpty(dt) Then Exit Sub
dt1 = [I2].Value
diff = dt - dt1 + 1
Application.EnableEvents = 0
Target.Offset(, diff).Value = ss
Application.EnableEvents = 1
End Sub
上のコードで
最初の行に
> If Target.Column <> 8 Then Exit Sub
と書いてあります。
Target は変化のあったセルのことです。
上の一行は、
セルに入力があったもののうち 列がH列でなければ終了せよ、
と言っています。逆にいえば、H列への入力のときだけ、
それ以降のコードが実行されるということです。
[I2]セルの日付をみて、それとTarget行のE列の日付の差分だけ列を右に移動
したセルに、Targetセルの値をコピーします。
|
|