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

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



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

Option Explicit

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

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

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

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

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