1. はじめに
- Excelのブックにあるシート単位にファイルを分割したい
- Excel VBAで一括でファイル名をシート名で自動保存したい
2. 開発環境
- Excel
3. Excelマクロの作成
3.1. 開発 > Visual Basicを選択する
3.2. プロジェクトを右クリックして、標準モジュールを選択する
3.3. Excel VBAマクロを記述する
Sub saveSheet()
Dim shObj As Worksheet
Dim newBook As Workbook
Dim newBookName As String
Dim folderParent As String
'シートの保存先はこのブックと同じとする
'必要に応じてこの変数を変更する
folderParent = ThisWorkbook.Path & "\"
'ワークシートの分だけ繰り返す
For Each shObj In Worksheets
'シートを新しいブックにコピーする
shObj.Copy
'移動先のブックがアクティブになっているので変数に格納する
Set newBook = ActiveWorkbook
'シート名を変数に格納しておく
newBookName = newBook.ActiveSheet.Range("C6") & "_" & shObj.Name & ".xlsx"
'新しいブックを名前を指定して保存する
newBook.SaveAs folderParent & newBookName
'新しいブックを閉じる
newBook.Close
Next shObj
End Sub
3.4. Excelマクロを保存して、マクロを実行する
4. 参考文献