Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5126 / 76732 ←次へ | 前へ→

【77219】Re:関数ではなくてマクロでやりたいのです。
発言  kanabun  - 15/6/18(木) 17:03 -

引用なし
パスワード
   ▼翔子 さん:


>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キーがおされて セルの値がクリアされた時も このマクロは走ります。
そのばあいは どうしたらいいのかな? 今は、何も書いていません)

409 hits

【77218】関数ではなくてマクロでやりたいのです。 翔子 15/6/18(木) 15:27 質問[未読]
【77219】Re:関数ではなくてマクロでやりたいのです。 kanabun 15/6/18(木) 17:03 発言[未読]
【77220】Re:関数ではなくてマクロでやりたいのです。 β 15/6/18(木) 17:39 発言[未読]
【77221】Re:関数ではなくてマクロでやりたいのです。 kanabun 15/6/18(木) 17:54 発言[未読]
【77226】Re:関数ではなくてマクロでやりたいのです。 翔子 15/6/19(金) 8:53 質問[未読]
【77227】Re:関数ではなくてマクロでやりたいのです。 β 15/6/19(金) 11:40 発言[未読]
【77233】Re:関数ではなくてマクロでやりたいのです。 翔子 15/6/20(土) 21:08 お礼[未読]

5126 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free