この記事では、VBAマクロを使用して、Excelシートを別のブックへコピーし、ファイル名を変更して保存する方法について解説していきます。
ポイントとしては、`Copy`、`SaveAs`を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。そのため、あなた自身がご活用の際には、ここを適切なものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
1. VBAマクロでシートを別ブックへコピーしファイルの名前変更して保存する方法【Copy, SaveAs】
それではまず、VBAマクロでシートを別ブックへコピーしファイルの名前変更して保存する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SheetKopiToBetsuBukku()
Dim MotoSheet As Worksheet
Dim KopiBukku As Workbook
Dim HozonName As String
' 元となるシートを選択
Set MotoSheet = ThisWorkbook.Sheets("Sheet1")
' 新しいブックを作成してコピー
MotoSheet.Copy
Set KopiBukku = ActiveWorkbook
' 保存名の指定
HozonName = KopiBukku.Path & "\Kopi.xlsx"
KopiBukku.SaveAs Filename:=HozonName
KopiBukku.Close
End Sub
コードのAlt+F8を押し、マクロ選択画面でSheetKopiToBetsuBukku関数を実行します。
このコードでは、`Sheet1`という名前のシートを新しいブックにコピーし、「Kopi.xlsx」という名前で保存しています。
2. VBAマクロで複数のシートを別ブックへコピーしファイルの名前変更して保存する方法【Copy, SaveAs】
続いては、VBAマクロで複数のシートを別ブックへコピーしファイルの名前変更して保存する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub TakusanSheetKopi()
Dim MotoSheets() As String
Dim KopiBukku As Workbook
Dim HozonName As String
' コピーしたいシート名を配列に格納
MotoSheets = Array("Sheet1", "Sheet2", "Sheet3")
' シートを新しいブックにコピー
ThisWorkbook.Sheets(MotoSheets).Copy
Set KopiBukku = ActiveWorkbook
' 保存名の指定
HozonName = KopiBukku.Path & "\TakusanKopi.xlsx"
KopiBukku.SaveAs Filename:=HozonName
KopiBukku.Close
End Sub
コードのAlt+F8を押し、マクロ選択画面でTakusanSheetKopi関数を実行します。
このコードでは、`Sheet1`, `Sheet2`, `Sheet3`という3つのシートを新しいブックにコピーして「TakusanKopi.xlsx」という名前で保存しています。
3. VBAマクロで複数の別ブックからシートをコピーし一つのファイルにまとめ名前変更して保存する方法【Copy, SaveAs, Add】
続いては、VBAマクロで複数の別ブックからシートをコピーし一つのファイルにまとめ名前変更して保存する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub TakusanBukkuKopi()
Dim MatomeruBukku As Workbook
Dim BetsuBukku As Workbook
Dim BetsuBukkuPath As String
Dim HozonName As String
' まとめるブックを新規作成
Set MatomeruBukku = Workbooks.Add
' 別ブックからシートをコピー
BetsuBukkuPath = "C:\path\to\your\file.xlsx"
Set BetsuBukku = Workbooks.Open(BetsuBukkuPath)
BetsuBukku.Sheets("Sheet1").Copy After:=MatomeruBukku.Sheets(MatomeruBukku.Sheets.Count)
BetsuBukku.Close
' 保存名の指定
HozonName = MatomeruBukku.Path & "\MatomeruKopi.xlsx"
MatomeruBukku.SaveAs Filename:=HozonName
MatomeruBukku.Close
End Sub
コードのAlt+F8を押し、マクロ選択画面でTakusanBukkuKopi関数を実行します。
このコードでは、指定されたパスの別ブックから`Sheet1`を新しいブックにコピーし、「MatomeruKopi.xlsx」という名前で保存しています。
シートのコピーは非常に便利な操作であり、特に大量のデータを持つブック間でデータの移動や統合を行う場面でその真価を発揮します。今回紹介したマクロは、初心者の方でも簡単に操作できるように変数名を一部日本語風の名前にしてありますが、実際の業務で使用する際には、変数名をもう少し短縮したり、英語名にするなどして可読性や効率を上げることが可能です。
VBAは非常に強力なツールですが、初心者の方にとっては少しハードルが高いと感じるかもしれません。しかし、少しずつ学びながら実践していくことで、Excel作業の効率化や自動化が可能となります。是非とも、今回の記事をきっかけにVBAの学習を深めていただければと思います。
それでは、次回の記事もお楽しみに!