質問: selectionchangeとchangeの違い エクセルのシートイベントには、 ・worksheet_change ・worksheet_selectionchange がありますが、違いはなんでしょうか? ・worksheet_changeはセルの値が変わったら発動 ・worksheet_selectionchangeは、 セルの選択が変わったら発動なおかつセルの値が変わったら発動 と言うことでしょうか? ・セルの値が変わったら、changeイベントの方が先に発動する。 であってますか?ご回答よろしくお願いします。
回答: 次のように実際にシートに仕込んでみます。 private sub worksheet_change(byval target as excel.range) msgbox "change " & target.address end sub private sub worksheet_selectionchange(byval target as excel.range) msgbox "selectchange " & target.address end sub で、次の操作を実際にご自分の手を動かして行ってみます。 1.セルの選択を変える 2.任意のセルに記入してenterする 3.任意のセルに記入してctrl+enterする(あるいは数式バーのチェックボタンで入力を終える) 4.記入したセルでdeleteキーを押して削除する やってみるとわかること: ○選択セルが動くとselectionchangeが起こります。選択セルが動かなければ、selectionchangeは起こりません。 ○セルの記入が変化するとchangeが起こります。選択セルが動いたか否かは関係ありません。 ○セルに記入され、同時に選択セルが動くと、まずセルに記入されてからセル移動が起こります。 さらに、「具体的にどのセルを受け取って」マクロが作動しているのかも、よく観察して理解してください。