今回はVBAで指定したセルの値が変わった時にWorksheet_Changeプロシージャーを使ってセルの値を変更する処理を行います。
やり方を知っておけば、応用できるケースがあるので参考にしてください。
Worksheet_Changeプロシージャー
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Private Sub Worksheet_Change(ByVal Target As Range) Dim ws1 As Worksheet: Set ws1 = Worksheets("Sheet1") Dim a As String: a = ws1.Range("C2") With ws1 'C2セルの値が変わった時に実行 If Intersect(Target, .Range("C2")) Is Nothing Then Exit Sub Else If Target.Value = "" Then 'セルが空白の場合 .Range("C5:C7") = "" Else 'セルが空白でない場合 .Range("C5") = a & "テスト1" .Range("C6") = a & "テスト2" .Range("C7") = a & "テスト3" End If End If End With End Sub |
解説
C2セルの値が変わった時にコードが実行されます。
サンプルでC2セルに月曜日と入力するとC5~C7にもC2セルと同じ値+テストと表示されるようにしています。
C2セルを消すとC5~C7セルも連動してセルの値が消えるようにしています。
他にもセルの色を変えたりもできるので、用途に合わせて修正してください。