Excel VBA質問箱 IV

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

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


55253 / 76732 ←次へ | 前へ→

【26257】マクロの暴走について
質問  いのっち  - 05/6/29(水) 18:41 -

引用なし
パスワード
   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番目の状態で暴走しています。何か良い知恵が
ございましたら、お貸しください。

----------------------------------------------------------------------
0 hits

【26257】マクロの暴走について いのっち 05/6/29(水) 18:41 質問
【26259】Re:マクロの暴走について Kein 05/6/29(水) 19:18 回答
【26289】Re:マクロの暴走について いのっち 05/6/30(木) 16:30 発言
【26317】Re:マクロの暴走について Kein 05/7/1(金) 11:54 発言
【26328】Re:マクロの暴走について いのっち 05/7/1(金) 14:42 お礼
【26266】暴走の理由 [名前なし] 05/6/29(水) 23:10 発言
【26290】Re:暴走の理由 いのっち 05/6/30(木) 16:31 お礼
【26300】Re:暴走の理由 [名前なし] 05/6/30(木) 22:26 回答
【26307】Re:暴走の理由 いのっち 05/7/1(金) 9:43 お礼

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