|
▼洋子 さん:
たとえば以下のように統合する手はありますね。
さらに、別の処理も、今後加わるかもしれませんので、私がアップしたブロック、
該当なかったらExit Sub としていたところを 該当あれば実行に変えておきました。
なお、●のところ、貼付 内でこのシートのセルを触っているのかどうかわかりませんが
もし、触っている場合、無駄なイベント連鎖が発生しますし、触り方によっては
無限ループに陥りますので、イベント発生の抑止/再開 をいれておきました。
Private Sub Worksheet_Change(ByVal Target As Range)
Const TgCel = "N5" ' <-- 特定セルを指定
Dim adr As Variant
Dim a As Range
Dim x As Long
If Not Intersect(Range(TgCel), Target) Is Nothing Then
If Range(TgCel) <> "" Then
Application.EnableEvents = False '●
'MsgBox "セル" & TgCel & " に値が入力されました。"
Call 貼付 ' <-- 実行するマクロ指定
Application.EnableEvents = True '●
End If
End If
adr = Array("G8", "I10", "K14", "M18", "H24", "K31", "N27", "G8") '★
Set a = Range(Join(adr, ","))
If Not Intersect(Target(1), a) Is Nothing Then
x = WorksheetFunction.Match(Target(1).Address(False, False), adr, 0)
Range(adr(x)).Select
End If
End Sub
|
|