マクロ コードを実行するシートのワークシート モジュール内に配置できます。これを行うと、オブジェクトにアクセスできるようになりMe
ます。この場合は、ワークシートを参照します。したがって、シート名をハードコードする必要はありません。また、他の場所からサブを呼び出すことはできますが、変更が行われる前に終了します。
例: マクロを sheet1 で実行する場合は、それを sheet1 モジュール内に配置します。
Sub riordino()
If Not Me.Name = Application.ActiveSheet.Name Then Exit Sub
Me.Range("A1:L22").Sort _
Key1:=Me.Range("C2"), _
Order1:=xlAscending, _
Key2:=Me.Range("D2"), _
Order2:=xlAscending, _
Key3:=Me.Range("A2"), _
Order3:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlSortRows
Me.Range("A2").Select
ThisWorkbook.Save
End Sub
アップデート
マクロ レコーダーを使用してマクロを作成すると、「モジュール 1」(または 2 または 3 など) と呼ばれるモジュールが作成されます。VBA エディターを開いてプロジェクト エクスプローラーを見ると、"Sheet 1" (この場合は "Current") という項目があります。その項目をダブルクリックして、エディター ウィンドウにコードを貼り付けます。

更新 2
コードを投稿するときは、質問を編集してそこに含めてください。読みやすくなり、誰もがコメントを調べなくても読むことができます。
生成されたコードを私のものと同じように変更する必要があります。違いは最小限であるため、他に同様のマクロがある場合は、残りを調整するのはかなり簡単です。(コードのフォーマットは関係ありません。読みやすさのためだけです)
Sub Ordinare()
If Not Me.Name = Application.ActiveSheet.Name Then Exit Sub
Me.Range("A2:L201").Sort _
Key1:=Me.Range("C2"), _
Order1:=xlAscending, _
Key2:=Me.Range("D2"), _
Order2:=xlAscending, _
Key3:=Me.Range("A2"), _
Order3:=xlAscending, _
Header:= xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal, _
DataOption3:= xlSortNormal
Me.Range("A2").Select
ThisWorkbook.Save
End Sub
これを「Sheet N(Current)」モジュールに貼り付けると、「Module11」は不要になります。(そのままにしておくと問題が発生します) キーボード ショートカットも機能しなくなります。メインの Excel ウィンドウのマクロ ダイアログの [編集] ボタンを使用して再構成する必要があります。