複数のSheetを含むExcelファイルがあります。含まれる全てのSheetについて、csvファイルを作成(Sheetの数だけcsvファイルを作成)する方法(たぶんVBAマクロ。他の手段でも可。)を教えてください。直接スクリプトを書いて頂いても、配布サイト等の紹介でも構いません。書いて頂く場合、csvファイル名は、A.xlsのB!なら、A_B.csvでお願いします。

急いでいるので、最初に満足な回答を頂いた方に500P出して、すぐ〆切ります。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2007/02/04 23:43:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:huruyosi No.1

回答回数30ベストアンサー獲得回数3

ポイント500pt

名前をつけて保存をシート単位に繰り返すマクロです。

問題は保存する形式が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
id:starboard

ありがとうございます。

助かりました。

2007/02/04 23:39:12

その他の回答1件)

id:huruyosi No.1

回答回数30ベストアンサー獲得回数3ここでベストアンサー

ポイント500pt

名前をつけて保存をシート単位に繰り返すマクロです。

問題は保存する形式が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
id:starboard

ありがとうございます。

助かりました。

2007/02/04 23:39:12
id:careplanner No.2

回答回数338ベストアンサー獲得回数13

ポイント20pt

CSVファイルにしたいシートを選択後、「ファイル」-「名前をつけて保存」でダイアログを表示してください。

そこでファイル名とその下にある「ファイルの種類」を「CSV(カンマ区切り)」を選択して保存すると、複数のシートをサポートしていませんという注意のダイアログがでますが、無視して保存をすると表示されているシートのCSVファイルが作成できます。

id:starboard

あー、これはちょっと違います。

が、いま自分の質問文を読んだら、たしかにこれも間違いとは言えない文章になってますね。粗品を差し上げますのでご笑納ください。

2007/02/04 23:42:02
  • id:starboard
    膨大なSheet数なんでどうしたもんかと思いましたが、頂いたMacroであっという間に終了しました。id:huruyosiさん、有難うございました。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません