top of page
検索

ExcelでVBA、Worksheetのイベント

更新日:6月18日

こんにちは。

今回は本当に単なる備忘録です。笑



■ 動作環境

 

OS: Windows 8.1

Excel: 2013



■ Worksheetのイベント

 
  • Activate ワークシートがアクティブになったときに発生。

  • BeforeDelete ワークシートが削除される前に発生。

  • BeforeDoubleClick 既定のダブルクリックの操作の前に、ワークシートをダブルクリックしたときに発生。

  • BeforeRightClick 既定の右クリックの操作の前に、ワークシートを右クリックしたときに発生。 他のワークシートイベントと同様、ポインタが図形またはコマンドバー(ツールバーまたはメニューバー)の上にある場合、右クリックしてもこのイベントは発生せず。

  • Calculate ワークシートを再計算した後に発生。

  • Change ワークシートのセルがユーザーまたは外部リンクにより変更されたときに発生。

  • Deactivate ワークシートが非アクティブになったときに発生。

  • FollowHyperlink ワークシートのハイパーリンクをクリックすると発生。

  • LensGalleryRenderComplete 引き出し線ギャラリーのアイコン(動的および静的)の表示が完了したときに発生。

  • PivotTableAfterValueChange ピボットテーブル内のセルまたはセル範囲が編集または再計算された後に発生。

  • PivotTableBeforeAllocateChanges ピボットテーブルに変更が適用される前に発生。

  • PivotTableBeforeCommitChanges ピボットテーブルのOLAPデータソースに対する変更が適用される前に発生。

  • PivotTableBeforeDiscardChanges ピボットテーブルに対する変更が破棄される前に発生。

  • PivotTableChangeSync ピボットテーブルが変更された後に発生。

  • PivotTableUpdate ピボットテーブルのレポートがワークシート上で更新された後で発生。

  • SelectionChange ワークシートで選択範囲を変更したときに発生。

  • TableUpdate データモデルに接続されたクエリテーブルがワークシートで更新された後に発生。



■ Changeイベント

 

このイベントを使いたかったために、本備忘録が誕生しました。笑


>> Change

>> ワークシートのセルがユーザーまたは外部リンクにより変更されたときに発生。


実現したかったのは、「特定のセルが変更されたときに特定の処理を行う」ですので、以下のように組んでみました。(G1:AK1の範囲を変更された場合…)



■ Intersectメソッド

 

Intersectメソッドの構文は、次のとおりです。


> Intersect arg1, arg2, [arg3], [arg4], …, [arg30]


  • 2つ以上の範囲(Rangeオブジェクト)を指定することで、その共通する範囲を表すRangeオブジェクトを返します。

  • 共通する範囲がない場合は、Nothingを返します。

  • 別のワークシートの1つ以上の範囲が指定されている場合は、エラーが返されます。



■ まとめ

 

いかがでしたでしょうか?

Worksheetで発生する様々なイベントに合わせて特定の処理を組み込むことができること、お分かりいただけたかと思います。ただし、イベントプロシージャを組めば組むほど、Excel(該当のWorksheet)の動きはドンドン重くなっていきますので、ほどほどに。^^



次回以降も、苦労した点を備忘録しようと思います。

閲覧数:426回0件のコメント

Comments


bottom of page