Excel VBAコードを書く最初の一歩」記事や「Excel VBA プロシージャ」記事で VBAコードの書き方の概要は掴めましたでしょうか?
さぁ、コードを書いてみましょう!と言われてもなかなかできないかもしれません。
そこで今回は、一例として表題のような VBAコードを書いてみます。
(ネット検索すると、類似の記事がいくつか見つかりますので、そちらを参考にしてもよろしいですね。)

複数のワークシートをもつ Excelブックを用意しておいて、この VBAコードを実行すると元のブック名のフォルダを作り、その中にそれぞれのワークシートの名前で各シートを別々の新規ブックに保存するというものです。

それでは、作ってみましょう。
テスト用に、3つのシート「Sheet1」「Sheet2」「Sheet3」を持ち、それぞれの A1セルには「東京支店」「千葉支店」「埼玉支店」と入力してある「元のブック.xlsm」を作ります。
[Alt]+[F11]キーを押して VBE (Visual Basic Editor)画面を表示します。

以下のコードを入力します:

Sub シートごとに保存()
  Dim 個別シート As Worksheet
  Dim ファイル名 As String
  Dim パス名 As String
  ファイル名 = ThisWorkbook.Name
  ファイル名 = Left(ファイル名, Len(ファイル名) - 5)
  パス名 = ThisWorkbook.Path & "\" & ファイル名
  If Dir(パス名, vbDirectory) = "" Then
    MkDir パス名
  End If
  ChDir パス名
  Application.ScreenUpdating = False
  For Each 個別シート In Worksheets
    個別シート.Copy
    ActiveWorkbook.SaveAs ActiveSheet.Name & ".xlsx"
  Next
  Application.ScreenUpdating = True
  Application.Quit
  ThisWorkbook.Close False
End Sub



 

このブックを保存し、[F5]キーを押して実行します。
下図のダイアログが現れたら「実行」ボタンを押します。

 

「元のブック.xlsm」があるフォルダ内に同じ名前の「元のブック」フォルダが作成され、その中に「Sheet1.xlsx」「Sheet2.xlsx」「Sheet3.xlsx」という 3つのブックが格納されます。(下図)

 

それぞれのブックを開いてみると、A1セルには「東京支店」などのテキストが入力されており、シート名もそのまま引き継がれています。

再度 [F5]キーを押して実行すると、今度は下図のようなアラートが出ます。

 

つまり、先ほどの実行により、「元のブック」フォルダ内に「Sheet1.xlsx」などが既に格納されているので、それと置き換えするか確認しています。
「はい」「いいえ」いずれかをクリックして進めてください。

それでは、上記の VBAコードを少し解説してみます。

「シートごとに保存」がここで実行しようとする Subプロシージャで、命名規則により日本語が可能です。
その下 3行が、このプロシージャ内で使用する変数を型とともに宣言しています。

次の「ファイル名 = ThisWorkbook.Name」を実行すると、変数「ファイル名」には「元のブック.xlsm」という文字列が入ります。
そして「ファイル名 = Left(ファイル名, Len(ファイル名) - 5)」の行で、その拡張子部分が取り除かれ「元のブック」となります。
次の「パス名 = ThisWorkbook.Path & "\" & ファイル名」で、この「元のブック.xlsm」があるフォルダのパスに、先の「元のブック」を連結して格納用フォルダのパス名を生成しています。

「If Dir(パス名, vbDirectory) = "" Then」で、「元のブック」フォルダが既にあるか判断しています。
Dir関数は、フォルダ名を「vbDirectory」とともに指定すると、そのフォルダが存在する場合はそのフォルダ名を、存在しない場合は空文字を返します。
この判断によりまだフォルダが存在しないときは、次の「MkDir パス名」でそのフォルダを作成します。

次の「ChDir パス名」で「元のブック」フォルダに移動します。
その次の「Application.ScreenUpdating = False」は、画面更新を止めて処理を高速化するようにします。

「For Each 個別シート In Worksheets」~「Next」は、繰り返し動作をさせるもので、WorkSheetオブジェクトの集まりである WorkSheetsコレクションから 1つ 1つの WorkSheetオブジェクトを取出してその数だけ繰り返し処理を行います。
1つの WorkSheetオブジェクトを取出して変数「個別シート」に格納し、「個別シート.Copy」でコピー操作をし、「ActiveWorkbook.SaveAs ActiveSheet.Name & ".xlsx"」でシート名に「.xlsx」を付けて保存します。

最後に「Application.ScreenUpdating = True」で、先ほど停止した画面更新を再開し、「Application.Quit」で Excelを終了し、「ThisWorkbook.Close False」でブックを保存せずに閉じます。