|
ありがとうございました。
説明もわかりやすく、また一つ勉強になりました。
本当にありがとうございました。
▼kanabun さん:
>▼みつ さん:
>
>>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セルの値をコピーします。
|
|