急いでいるので、最初に満足な回答を頂いた方に500P出して、すぐ〆切ります。
名前をつけて保存をシート単位に繰り返すマクロです。
問題は保存する形式がCSVになってしまいます。
上書き保存しても構わなければ、最後から2行の
ActiveWorkbook.SaveAs ~
を有効にしてくださ
以下マクロのソースです。
Sub Macro1() Dim ws As Worksheet Dim cvsDir As String Dim csvPrefix As String Dim wsName As String ' このブックのパスを取得 csvPrefix = ThisWorkbook.Path + "\" + ThisWorkbook.Name csvPrefix = Left(csvPrefix, Len(csvPrefix) - 4) ' シートの数だけループを回す For Each ws In ThisWorkbook.Sheets ws.Activate wsNname = ws.Name ws.SaveAs Filename:=csvPrefix + "_" + wsNname + ".csv", FileFormat:=xlCSV, _ CreateBackup:=False ws.Name = wsNname Next ' ActiveWorkbook.SaveAs Filename:=csvPrefix + "xls", FileFormat:=xlNormal End Sub
名前をつけて保存をシート単位に繰り返すマクロです。
問題は保存する形式がCSVになってしまいます。
上書き保存しても構わなければ、最後から2行の
ActiveWorkbook.SaveAs ~
を有効にしてくださ
以下マクロのソースです。
Sub Macro1() Dim ws As Worksheet Dim cvsDir As String Dim csvPrefix As String Dim wsName As String ' このブックのパスを取得 csvPrefix = ThisWorkbook.Path + "\" + ThisWorkbook.Name csvPrefix = Left(csvPrefix, Len(csvPrefix) - 4) ' シートの数だけループを回す For Each ws In ThisWorkbook.Sheets ws.Activate wsNname = ws.Name ws.SaveAs Filename:=csvPrefix + "_" + wsNname + ".csv", FileFormat:=xlCSV, _ CreateBackup:=False ws.Name = wsNname Next ' ActiveWorkbook.SaveAs Filename:=csvPrefix + "xls", FileFormat:=xlNormal End Sub
ありがとうございます。
助かりました。
CSVファイルにしたいシートを選択後、「ファイル」-「名前をつけて保存」でダイアログを表示してください。
そこでファイル名とその下にある「ファイルの種類」を「CSV(カンマ区切り)」を選択して保存すると、複数のシートをサポートしていませんという注意のダイアログがでますが、無視して保存をすると表示されているシートのCSVファイルが作成できます。
あー、これはちょっと違います。
が、いま自分の質問文を読んだら、たしかにこれも間違いとは言えない文章になってますね。粗品を差し上げますのでご笑納ください。
ありがとうございます。
助かりました。