|
▼翔子 さん:
>E3に値が入っています。
>1 D6に値が入ったら、C6にE3の値が入るように。
>2 D7に値が入ったら、C7にE3の値が入るように。
>3 D8に値が入ったら、C8にE3の値が入るように。
>4 D9に値が入ったら、C9にE3の値が入るように。
>5 D10に値が入ったら、C10にE3の値が入るように。
>したいのですが、
シートのモジュール(マクロを書くところ)に
以下のコードを記述します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Dim c As Range
Set r = Intersect(Target, Range("D6:D10"))
If r Is Nothing Then Exit Sub
For Each c In r
If Not IsEmpty(c.Value) Then
c.Offset(, -1).Value = Range("E3").Value
End If
Next
End Sub
このコードは そのワークシートのセルに変化があったときに 動きます。
> Set r = Intersect(Target, Range("D6:D10"))
このコードは 変化のあったセル Target(複数セルのばあいも考慮) と
[D6:D10] と比べ、変化のあったセルTarget が [D6:D10]のなかに入っているとき
のみ、それ以降の処理を実行します。
> If Not IsEmpty(c.Value) Then
> c.Offset(, -1).Value = Range("E3").Value
> End If
ここは 変化のあったD列のセルの値が 空 でないときには [E3]セルの値を
そのセルの比ダル隣りのC列セルに 値コピー しています。
(Deleteキーがおされて セルの値がクリアされた時も このマクロは走ります。
そのばあいは どうしたらいいのかな? 今は、何も書いていません)
|
|