Sub TEST1()
'新規ブックにコピー
ActiveSheet.Copy
'名前を付けて保存
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\別ブック.xlsx"
ActiveWorkbook.Close False 'ブックを閉じる
End Sub
手順は、
「.Copy」を使って、新規ブックにコピー
「.SaveAs」で、名前を付けて保存
「.Close」で、ブックを閉じる
という流れになります。
では、VBAコードを実行してみます。
1つのシートを別ブックで保存できた
名前を付けて保存できます。
1つのシートを、名前を付けて保存できます。
1つのシートを、名前を付けて保存できました。
複数のシートを複数ブックに保存
次は、「複数のシート」を「複数ブック」に保存してみます。
やりたい内容は、複数シートを複数ブックに名前を付けて保存したい、ということになります。
複数シートを複数ブックに保存したい
VBAコードは、次のようになります。
Sub TEST2()
Dim A
'シートをすべてループ
For Each A In Worksheets
'新規ブックにコピー
A.Copy
'名前を付けて保存
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & A.Name & ".xlsx"
ActiveWorkbook.Close False 'ブックを閉じる
Next
End Sub
Sub TEST3()
Dim A, B, C
'日付と時間を取得
B = Format(Now(), "yyyymmdd-hhmmss")
'すべてのシートをループ
For Each A In Worksheets
'新規ブックにコピー
A.Copy
'フルパスを作成
C = ThisWorkbook.Path & "\" & A.Name & "_" & B & ".xlsx"
'名前を付けて保存
ActiveWorkbook.SaveAs Filename:=C
ActiveWorkbook.Close False 'ブックを閉じる
Next
End Sub
日付は、「Now()」を使うと、取得することができます。
桁数を整えたいので、「Format」を使っています。
では、VBAコードを実行してみます。
複数シートを「日付を付けて」複数ブックに保存できた
日付を付けて、複数ブックに名前を付けて保存できます。
複数シートを、「日付を付けて」複数ブックに保存できます。
複数シートを、「日付を付けて」複数ブックに保存できました。
拡張子を変更して複数ブックに名前を付けて保存
別ブックに保存する際は、拡張子を変更して保存することもできます。
次の2つの形式で、保存してみます。
CSVファイル
.txtファイル
では、実際にやってみます。
CSVファイル
やりたい内容は、複数シートを「CSV」で複数ブックに保存したい、ということになります。
複数シートを「CSV」で複数ブックに保存したい
VBAコードは、次のようになります。
Sub TEST4()
Dim A, B
'すべてのシートをループ
For Each A In Worksheets
'新規ブックにコピー
A.Copy
'フルパスを作成
B = ThisWorkbook.Path & "\" & A.Name & ".csv"
'CSVで、名前を付けて保存
ActiveWorkbook.SaveAs Filename:=B, FileFormat:=xlCSV
ActiveWorkbook.Close False 'ブックを閉じる
Next
End Sub
ポイントは、「FileFormat:=」の引数を使う点になります。
CSV形式で、保存したいので、「xlCSV」を入力しています。
では、VBAコードを実行してみます。
複数シートを「CSV」で複数ブックに保存できた
「CSV形式」で、複数ブックに名前を付けて保存できます。
複数シートを、「CSV形式」で複数ブックに保存できます。
複数シートを、「CSV形式」で複数ブックに保存できました。
txtファイル
やりたい内容は、複数シートを「.txt形式」で複数ブックに保存したい、ということになります。
複数シートを「.txt」で複数ブックに保存したい
VBAコードは、次のようになります。
Sub TEST5()
Dim A, B
'すべてのシートをループ
For Each A In Worksheets
'新規ブックにコピー
A.Copy
'フルパスを作成
B = ThisWorkbook.Path & "\" & A.Name & ".txt"
'「.txt」形式で、名前を付けて保存
ActiveWorkbook.SaveAs Filename:=B, FileFormat:=xlText
ActiveWorkbook.Close False 'ブックを閉じる
Next
End Sub