1つのエクセルデータ(ブック)内に複数のシートが存在する。
そのシートを1つずつ切り取ったブックデータを作らなくてはいけないんだが・・・
楽な方法はないかと探してたんが、意外と簡単に見つかったわw
以下 マクロのソース
Sub Sheet_bunkatu()
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 + ".xls", FileFormat:=xlCSV, _
CreateBackup:=False
ws.Name = wsNname
Next
End Sub
実際には参考にしたページがあるんだけど閉じちゃった・・・orz
ただ使った感じまだ改善できそう・・・。
使用方法は分割したいエクセルデータにマクロを貼り付けて実行するだけ
実行するとエクセルデータと同じ場所にブック名_シート名.xlsデータが作成されていく。
VBAをもうちょっと勉強せねば・・・
そのシートを1つずつ切り取ったブックデータを作らなくてはいけないんだが・・・
楽な方法はないかと探してたんが、意外と簡単に見つかったわw
以下 マクロのソース
Sub Sheet_bunkatu()
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 + ".xls", FileFormat:=xlCSV, _
CreateBackup:=False
ws.Name = wsNname
Next
End Sub
実際には参考にしたページがあるんだけど閉じちゃった・・・orz
ただ使った感じまだ改善できそう・・・。
使用方法は分割したいエクセルデータにマクロを貼り付けて実行するだけ
実行するとエクセルデータと同じ場所にブック名_シート名.xlsデータが作成されていく。
VBAをもうちょっと勉強せねば・・・
PR
トラックバック
トラックバックURL: