プロシージャはどこに書いたら良いか。

標準モジュール、シートモジュール、ThisWorkbookなどプロシージャを書ける場所は複数存在します。
どこに書くべきなのでしょうか? マクロの自動記録から始めたので「標準モジュールに書くものと思っていた」とか、 もしくは、標準モジュールはいちいち追加しなければならないので、何も考えずにシートモジュールに細かい処理記述を書いている、なんてことはありませんか?
それでも正しく動くようにできたのならそれで間違いではありませんが、以下のような判断基準を持った上で書き込む場所を決定してはいかがでしょうか。 単にシートモジュールが既にあったから、そこに書いたというのでは、安直なだけでしょう。

そのプロシージャがどのような状態で起動されるか。
マクロの自動記録で作成されたようなシートを明示せずにセルを参照するような記述の場合、書く場所によって動作が違ってくる場合があります。

Option Explicit

Sub TEST4()
    MsgBox Range("A1").Value
End Sub
ただ、A1セルの値をメッセージ表示するだけのコードですが、これを標準モジュールに記述するのと、Sheet2に記述するのでは同じ動作にはなりません。
このようにコードの記述上でA1セルがどのシートのものかが明示されていない場合は、標準モジュールの場合は現在シート(ActiveSheet)、Sheet2のモジュールではSheet2が対象となるので、同じ結果にならないことになります。
ですから、Sheet2のイベント記述のようにそのシートからしか呼び出されないなら、Sheet2に記述することが正当であると説明できると思います。

そのプロシージャに変更要求が発生した時のことを考慮しているか。
「配布の問題」を読んでいただいている方ならお解りと思いますが、長い期間に渡って繰り返し利用されるマクロの場合は、不具合でなくても利用中に新たな機能要求が発生してコードを変更する必要性が起きることが結構あります。
主要なマクロコードをアドインやマクロブックに分離するなどで改廃を考慮するところまで考えてある場合は問題ありませんが、そうでない場合は変更したコードを運用中のブックに対して入れ替える必要があります。
このようなケースの配慮としては、標準モジュールに主要ロジックを集中させておいた方が作業が簡単です。旧モジュールを解放し、新モジュールをインポートするだけですから操作ミスも少ないと思います。
入れ替え対象のブック数によっては大変な作業となってしまいますが、このような場合の配慮としては、「モジュール入れ替え機能」を事前に組み込んでおくのも良いかも知れません。 シートやブック(ウィンドウ)のイベント記述が含まれる場合でも、シートやブックの各モジュールはそのまま標準モジュールのプロシージャを呼び出すだけの記述にしておけば、これの修正が起きることはないはずです。

共通記述の集約や、今後のマクロ作成への転用などを考慮しているか。
次々に新しいマクロを作っていく場合は、共通機能をうまく集約して標準モジュールに共通プロシージャとしておけば新しいマクロを作る場合でもインポートさせるだけで利用できるようになります。
そこまで行かなくても、以前作成したマクロを転用して新しいマクロに移し、必要な部分を変更して用いることはよくあることですが、この場合でも標準モジュールに置いておく方が移行しやすいでしょう。

マクロの切り離しなどの配慮は不要か。
集計処理を行なった後にそのシートだけをマクロがない状態にして配布するような要望もよく発生することだと思います。 このような場合、コードをシートモジュールに書いてしまうと面倒な作業になってしまいます。標準モジュールに書いておけばそのシートを新規ブックにコピーさせるだけでマクロが残らないブックに提出させることができます。

「そんな配慮はいらないよ」と言われても...
1回きり動作させるだけだから...」なんて頼まれ方で作成したはずのものが、「あれは便利だから、別の案件でも使いたい。」とか、後になって「前に作ってもらったヤツを少し変更してほしい。」なんてことが発生するものです。
「当座だけ...」かどうかはきちんと書面などで確認しておかないと、結局、このようなケースになってしまうと思います。このようなことへの対処としても、どこに書くべきかという問題も「あるべき姿」を見据えて決めて下さい。



社内各署からのいろいろな要求事項にマクロ作成で対応するような役目の方は、「要求の都度マクロを作成して実装したワークブックを現場に渡す」などということをやっていると、いずれ自分の首を絞めることになります。 主要マクロを実装したワークブックを現場に渡してしまうと後で変更が必要になった時に「どこに保存されているか」「どこにコピーされたか」が判らなくなり全てに変更を反映できたかが確認できない事態になります。
「配布の問題」でも提起していることですが、
・主要なマクロコードをアドインやマクロブックに分離する
・このアドインやマクロブックは社内共通のネットワーク上のフォルダに配置
・配布する各ワークブックは起動時に裏で上記のアドインやマクロブックを開いてマクロを用いる
  ⇒配布する各ワークブックには上記のアドインやマクロブックを開く部分とそのマクロを起動する部分だけ記述する
このような方法を取り入れることができればマクロの改廃はこの「アドインやマクロブック」だけで済むのです。