• ベストアンサー

複数シートの一括CSVファイルに変換するには?

エクセルにて複数のシートを一括でCSVファイルにて 保存する方法ってあるのでしょか? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kamiero
  • ベストアンサー率31% (88/282)
回答No.2

ズバリそのままのがありました。フリーウェアです。 Excelファイル→CSVファイル変換プログラム http://www.vector.co.jp/soft/win95/business/se180132.html?y

参考URL:
http://www.vector.co.jp/soft/win95/business/se180132.html?y
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

こんな感じで如何でしょうか。 CSVファイルの保存場所やファイル名は、適当に変更してください。 現在は、ブックと同じ場所に、各シート名のファイル名で ※「上書き」する ようになっています。(※ 注意:最初に支障ないか確認のこと。) Sub Csv_Save() '全シートを CSVで書き出します。 '書き出すフォルダは、ブックと同じです。 'ファイル名は、各シート名上書きします。 Dim Wb As Workbook Dim Sh As Worksheet Dim N As Integer For Each Sh In Worksheets   Set Wb = Workbooks.Add   ThisWorkbook.Activate   Sh.Copy Before:=Wb.Sheets(1)   Application.DisplayAlerts = False   For N = Wb.Sheets.Count To 2 Step -1     Sheets(N).Delete   Next N   Wb.Sheets(1).Name = Sh.Name   Wb.SaveAs ThisWorkbook.Path & "\" & Sh.Name & _     ".csv", FileFormat:=xlCSV   Wb.Close   Application.DisplayAlerts = True Next Sh End Sub

全文を見る
すると、全ての回答が全文表示されます。
  • kamiero
  • ベストアンサー率31% (88/282)
回答No.1

CSVでシート形式に出来ないもので、質問は、 複数シートになっているものを別ファイルで ばらばらにCSV形式で保存するものとして解釈 してよいですか?

akira_akira
質問者

補足

はい、複数シートになってるいるものを別ファイルでばらばらにCSV形式で一括で保存していのですが。。。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでシート名のCSV形式ファイルの一括複数保存

    エクセルで編集した複数のシートをそれぞれのシート名でCSV形式ファイルとして保存するにはシートを開いてはファイル名を指定してCSVで保存という操作をシート分だけしなければならないのですが、これを少ない操作で行う事は可能でしょうか。たとえばシートを複数選択して、CSV形式だけを選択して一括で保存するとかです。

  • エクセルの複数シートをCSVファイルに変換したい

    エクセルの複数シートをCSVファイルに変換したい

  • エクセルの複数シートをCSVファイルに変換したい

    エクセルの複数シートをCSVファイルに変換したい

  • Excel ワークシート から csvファイルに変換するには?

    エクセルに記入された内容は各マスで区切られておりますが マスではなく「,」で区切られる csvに変換したいのですが これは可能でしょうか? 既に入力済みのエクセルシートから ファイル→名前を付けて保存→ファイルの種類→csv→保存 というようにしてエクセルからcsvに変換しようとしましたが 「選択したファイルの種類は複数のシートを含むブックをサポートしていません」 というエラーが出て、そこでOKを押すと 「CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります、この形式でブックを保存しますか?」 と出てきますのでここで「はい」をおすと ファイルの拡張子自体はcsvになるのですが カンマでの区切りではなく未だにエクセルのラインが残っております どうすればエクセルで区切られたマスをカンマに置き換える事ができるのでしょうか? 変換しようとした際に出てくるエラーに問題があるのでしょうか? そうだとしてもエラーの意味がわかりません… 教えてください よろしくお願いします

  • エクセルの複数シートをCSVファイルに変換したい

    現在、エクセルのVer2002を使用しており、CSV(カンマ区分け)ファイル変換を実行することが多くあります。 現状、CSVに変換すべきブック中のシート数が多い(EX.90~140)場合の作業で大変苦労をしています。 ワークシートをグループ化しても”複数のシートを含むブックをサポートしていません。” の表示が出てアクティブ・シートのみの変換になって個々のシート毎に行っておりますが、他に良い解決方法、手段をご存じの方はご伝授ください。 よろしくお願い致します。

  • Excelのシートをcsv形式に変換するには。

    Excelのシートをcsv形式に変換するには。 こんにちは。 複数のシートがあるエクセルファイルを、一度にcsv形式に変換したいのですが、 なにかいい方法または、フリーソフトはありますでしょうか? よろしくお願いいたします。

  • 複数のCSVファイルをパスワード付きで一括圧縮する方法について

    複数のCSVファイルをパスワード付きで一括圧縮する方法について はじめまして。 複数のCSVファイルを一括してパスワード付きで圧縮したいのですが何かいい方法はないでしょうか? 圧縮だけなら「zip.exe」を利用してWindowsバッチで zip test.zip test.csvと コマンドラインから実行すれば可能ですがパスワード付きとなるとWindowsバッチからでは できないと思います。 Windowsバッチ以外の方法でもいいのでパスワード付きで圧縮を一括して行う 方法はないでしょうか? よろしくお願いします。

  • 複数のCSVファイルからのデータ取得(VBA)

    エクセルVBAで、エクセルの指定シートに複数のCSVファイルからデータを取得する方法を ご教授お願います。 エクセルの指定シートの指定されたセルに、複数のCSVファイルから指定箇所のデータを 取得し転送する方法を考えていますが、どうもうまくいきません。 たとえば、 CSVファイル(1) A5(A)           A10(B) CSVファイル(2) A5(C)           A10(D)      CSVファイル(3) A5(E)           A10(F)         ・      ・      ・ と、指定されたセルからデータを取得し、 エクセルの指定シートの表に                    CSVファイル                                 (1)  (2)  (3) ・ ・ ・ ------------------------------------------- A5から取得したデータ    A   C   E ・ ・ ・ A10から取得したデータ    B   D   F ・ ・ ・ ------------------------------------------- と、いうように転送して貼り付けていきたいです。 いろいろ調べてみたのですが、このような方法が見つけられませんでした。 ぜひ、皆様のお知恵をお貸しください。 宜しくお願い致します。

  • 複数csvファイルをexcelの各シートに書き込む

    複数のCSVファイルを各々一つのexcelファイルの各ワークシトに書き込む方法のコードを下記のようにQueryTableを使った形にしてみました。 $csvFile1 = "D:\test_data\test_data1.csv" $csvFile2 = "D:\test_data\test_data2.csv" $excel = New-Object -ComObject Excel.Application $excel.Visible = $true $book = $excel.Workbooks.Add() $Book.Worksheets.Add() $sheet1 = $excel.Worksheets.Item(2) $sheet2 = $excel.Worksheets.Item(1) $startRange = "C2" $outputColumn = $sheet1.Range($startRange).Column $outputRow = $sheet1.Range($startRange).Row $QueryTable = $sheet1.QueryTables.Add("TEXT;$csvFile1",$sheet1.cells($outputRow,$outputColumn)) $QueryTable.TextFileCommaDelimiter = $True $QueryTable.TextFilePlatform = 65001 $QueryTable.TextFileStartRow = 1 $QueryTable.Refresh($false) $QueryTable.Name = "仮テーブル" $QueryTable.Delete() $startRange = "C2" $outputColumn = $sheet2.Range($startRange).Column $outputRow = $sheet2.Range($startRange).Row $QueryTable = $sheet2.QueryTables.Add("TEXT;$csvFile2",$sheet2.cells($outputRow,$outputColumn)) $QueryTable.TextFileCommaDelimiter = $True $QueryTable.TextFilePlatform = 65001 $QueryTable.TextFileStartRow = 1 $QueryTable.Refresh($false) $QueryTable.Name = "仮テーブル" $QueryTable.Delete() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) > $null [gc]::Collect() これは2個のcsvファイルだから何とかなっていますがファイルが増えた場合これではとても面倒なことになります。私の能力ではコンパクトにコードを纏めることが出来ません。コンパクトな方法をお教えください。別にExport-Excel等使う方法でもかまいません。

  • 複数csvファイルをexcelの各シートに書込む2

    前回powershellを使い複数のcsvをそれぞれのシートに分けて新規Excelファイルとして書き込む方法についてお教え頂きましたが、既存ファイルの場合下記の下記のコードのようにすると既存シートがある場合既存のシートにシート名を変え書き加えられることになります。既存シートをそのままにして新規シートとして追加するような方法をお教えください。 $csvFiles = @("D:\test_data\test_data1.csv", "D:\test_data\test_data2.csv") # Excelファイルのパス $excelPath = (Get-ChildItem "D:\test_data\AAA.xlsx").FullName $excel = New-Object -ComObject Excel.Application $excel.Visible = $true $book = $excel.Workbooks.Open($excelPath) foreach ($index in 0..($csvFiles.Length - 1)) { if ($index -eq 0) { $sheet = $book.Sheets.Item(1) } else { $sheet = $book.Sheets.Add() } $sheet.Name = "data" + ($index + 1) $startRange = "C2" $QueryTable = $sheet.QueryTables.Add("TEXT;"+$csvFiles[$index], $sheet.Range($startRange)) $QueryTable.TextFileCommaDelimiter = $True $QueryTable.TextFilePlatform = 65001 $QueryTable.TextFileStartRow = 1 $QueryTable.Refresh($false) $QueryTable.Name = "仮テーブル" $QueryTable.Delete() } [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($book) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) > $null Remove-Variable sheet, book, excel [gc]::Collect() [GC]::WaitForPendingFinalizers() なお、csvファイルの指定方法は違います(ファイル名で指定する方が分からないのでコピペのコードそのままに近い)がExport-Excelを使った下記コード場合同じシート名がある場合は、そのシートに書き込まれますがそれ以外は新規シート名(csvファイル名)として付け加えられます。 $csvs = Get-ChildItem .\* -Include *.csv $csvCount = $csvs.Count Write-Host "Detected the following CSV files: ($csvCount)" foreach ($csv in $csvs) { Write-Host " -"$csv.Name } $excelFileName = "D:\test_data\AAD.xlsx." Write-Host "Creating: $excelFileName" foreach ($csv in $csvs) { $csvPath = ".\" + $csv.Name $worksheetName = $csv.Name.Replace(".csv","") Write-Host " - Adding $worksheetName to $excelFileName" Import-Csv -Path $csvPath | Export-Excel -Path $excelFileName -WorkSheetname $worksheetName -StartRow 2 -StartColumn 3 } しかしならこの方法では大きなデータの場合処理時間を要することになります。処理時間で言うなら下記コードの方が一番速いですがやはり新規シートに置き換えられる問題があります。 $sourceFiles = @("D:\test_data\test_data1.csv", "D:\test_data\test_data2.csv") $outputFile = "D:\test_data\AAE.xlsx" $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false $outputWorkbook = $excel.Workbooks.Add() $index=1; foreach ($sourceFile in $sourceFiles) { $workbook = $excel.Workbooks.Open($sourceFile) foreach ($sheet in $workbook.Sheets) { $sheet.Copy([ref]$outputWorkbook.Sheets.Item($outputWorkbook.Sheets.Count)) } $index=$outputWorkbook.Sheets.Count $workbook.Close($false); } $outputWorkbook.Sheets.Item($index).Delete() $outputWorkbook.SaveAs($outputFile); $excel.Quit(); [System.Runtime.InteropServices.Marshal]::ReleaseComObject($outputWorkbook) | Out-Null; [System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel) | Out-Null; Write-Output "Sheets have been combined into $outputFile"; 私のコピペ能力ではここまでです。シート名が同じの場合は上書きされそれ以外は新規シートとして追加される方法になれば幸いです。よろしくお願いいたします。

ZZ3-B582ボビンの購入について
このQ&Aのポイント
  • フリマサイトで購入したZZ3-B582ボビンの高さが9mmか9.2mmかわからないので、どちらのボビンを購入すればいいか相談したい。
  • 公式ホームページでは9.2mmに対応していると表示されているが、実際のボビンの高さがわからないので不安だ。
  • ブラザー製品のボビンに詳しい人のアドバイスがほしい。
回答を見る

専門家に質問してみよう