ひとつのエクセルブックに複数シートがありシート毎に新たなブックに保存するやり方を説明します。
VBAを使ってシート毎にブックを作成する
取引先一覧(まとめ).xlsmにはA社、B社、C社、D社の4つのシートがあります。
取引先一覧(まとめ).xlsm
VBAを使って以下のように新たなブックを作成します。
取引先一覧(A社).xlsx
取引先一覧(B社).xlsx
取引先一覧(C社).xlsx
取引先一覧(D社).xlsx
VBAのコーディング例
Sub sheets_save()
‘シートを新たなブックで保存する
Dim bookname As String
Dim newbookname As String
Dim sheetname As String
Dim シート As Variant
‘ブック名を取得して変数booknameへ入れる
bookname = ActiveWorkbook.Name
‘ブック名の拡張子を取り除く
bookname = Replace(bookname, “.xlsm”, “”)
‘シートの数だけ繰り返す
For Each シート In Worksheets
シート.Copy
sheetname = シート.Name
newbookname = Replace(bookname, “まとめ”, sheetname)
‘新規ブックを保存する
ActiveWorkbook.SaveAs ThisWorkbook.Path & “\” & newbookname
‘新規ブックを閉じる
ActiveWorkbook.Close
Next シート
End Sub
マクロの実行結果
まとめ
エクセルのシートを分割して新たなブックを作成する方法でした。
シートは何シートあっても自動的に作成してくれます。
記事のマクロは自由に使われて構いません。
仕事の効率化に役立てば幸いです。
コメント