|
D7セルに1を入力した時、次のセルE7に1を入れたい時のマクロです。
D7セルに2や3を入れると同様E7もそれぞれ2や3になります。
下記は正常動作しています。
----------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim hen As integer
hen = 7
Select Case ActiveSheet.Cells(hen, 4).Value
Case 1
ActiveSheet.Cells(hen, 5).Value = 1
Case 2
ActiveSheet.Cells(hen, 5).Value = 2
Case 3
ActiveSheet.Cells(hen, 5).Value = 3
Case Else
ActiveSheet.Cells(hen, 5).Value = 0
End Select
End Sub
----------------------------------------------------------------------
ところが、D7に1を入れた時、E7に1,F7を10にしたいようにマクロを修正しましたが、
暴走してしまいます。
----------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim hen As integer
hen = 7
Select Case ActiveSheet.Cells(hen, 4).Value
Case 1
ActiveSheet.Cells(hen, 5).Value = 1
ActiveSheet.Cells(hen, 6).Value = 10
Case 2
ActiveSheet.Cells(hen, 5).Value = 2
ActiveSheet.Cells(hen, 6).Value = 20
Case 3
ActiveSheet.Cells(hen, 5).Value = 3
ActiveSheet.Cells(hen, 6).Value = 30
Case Else
ActiveSheet.Cells(hen, 5).Value = 0
ActiveSheet.Cells(hen, 6).Value = 0
End Select
End Sub
----------------------------------------------------------------------
また、目的は、D列全てにこのような動作をさせるために、for文を使用
しましたが、これまたもちろん暴走します(というか、前の状態の
暴走がそのまま暴走している感じなのでしょう、きっと)
----------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim hen As integer
For hen = 7 to 100
Select Case ActiveSheet.Cells(hen, 4).Value
Case 1
ActiveSheet.Cells(hen, 5).Value = 1
ActiveSheet.Cells(hen, 6).Value = 10
Case 2
ActiveSheet.Cells(hen, 5).Value = 2
ActiveSheet.Cells(hen, 6).Value = 20
Case 3
ActiveSheet.Cells(hen, 5).Value = 3
ActiveSheet.Cells(hen, 6).Value = 30
Case Else
ActiveSheet.Cells(hen, 5).Value = 0
ActiveSheet.Cells(hen, 6).Value = 0
End Select
Next
End Sub
----------------------------------------------------------------------
if文で試してもやはり2番目の状態で暴走しています。何か良い知恵が
ございましたら、お貸しください。
----------------------------------------------------------------------
|
|