アプリ版:「スタンプのみでお礼する」機能のリリースについて

このようなマクロを作っています。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then Exit Sub
Range("B2").Copy
Range("C2").Select
ActiveSheet.Paste
End Sub

しかし、このままだとループしてしまいます。
それで、B1:B2をコピーしてC1:C2に貼り付けています。
 
マクロの中で、ワークとチェンジのイベントを停止したり、開始できれば良いなと思っています。こんなこと、できますか。教えてください。

A 回答 (3件)

Private Sub Worksheet_Change(ByVal Target As Range)



If Target.Address <> "$C$2" Then Exit Sub
Range("C2") = Range("B2")

End Sub

これだとイベントが発生しないと思うのですが。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

Range("C2") = Range("B2") これで、イベントは発生しないのは確認しまのた。

でも、Range("B2")には入力規則(リストからの入力)が設定されており、それごとコピーしたいのです。
 
また、何か有ったら、教えてください。

お礼日時:2003/04/05 19:35

また回答します。



Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then Exit Sub
Range("B2").Copy Destination:=Range("C2")
End Sub

これでどうでしょう。

この回答への補足

何度も回答、ありがとうございます。
同じシート内だと、うまくいきました。B2に入力規則にリストの設定がしてあっても平気でした。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then Exit Sub
Worksheets(2).Activate
Range("B2").Copy Destination:=Worksheets(1).Range("C2")
End Sub

これだと意図した通り動きません。下の様にすると、動きました。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then Exit Sub
Call bbb
End Sub

以下、Moduleに書きました。

Sub bbb()
Worksheets(2).Activate
Range("B2").Copy Destination:=Worksheets(1).Range("C2")
End Sub

どうも、Sheetの方では、使えるコードに制約があるみたいです。

あとWorksheets(2).Range("B2")に入力規則を設定していると、動きが不安定になるようです。(イベントが発生しているのか、他の原因かわかりません。)

エクセルのバージョンは2000です。パッチはSP3まで当ててあります。

補足日時:2003/04/06 01:00
    • good
    • 0

私はエクセル2002を使用しています。


ちょっと不安定の原因が分からないので
最初の質問に立ち返って

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$2" Then Exit Sub
Range("B2").Copy
Range("C2").Select
Application.EnableEvents = False
ActiveSheet.Paste
Application.EnableEvents = True
End Sub

ペーストの時だけイベントを停止しています。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

ヘルプを探しても、見つけることができませんでした。

今までは、一つ前のセルを退避させ、戻していたのが、無くなり、マクロを書くのが楽になりました。
今までの苦労はなんだったんでしょうか。

また何か有ったら、教えてください。

お礼日時:2003/04/06 21:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!