• ベストアンサー

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

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

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

  • ベストアンサー
  • taba
  • ベストアンサー率61% (349/567)
回答No.2

標準のメニューなどではできないので、マクロを使うしかないと思います。 古いバージョンの例ですが、動くかも。 エクセルの複数シートをCSVファイルに変換したい http://okwave.jp/qa/q2389083.html

jm1948
質問者

お礼

ご回答ありがとうがざいました。もう少しガばってみます。

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

その他の回答 (2)

  • PU2
  • ベストアンサー率38% (1101/2843)
回答No.3

book形式で保存されている複数シートの事なら http://download.goo.ne.jp/software/contents/soft/winnt/util/se306999.html かな でも最新版のexcelだったら無理だろうけど 古いバージョンで保存すれば大丈夫だろうと思う。 もう少し丁寧に質問しなきゃわからない

参考URL:
http://download.goo.ne.jp/software/contents/soft/winnt/util/se306999.html
jm1948
質問者

お礼

ご回答ありがとうございました。ダウンロードのところまでいきましたが、未熟な私には少々難題と思われます。もう少し進めたら再度質問いたしますのでよろしくお願いいたします。

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

http://okwave.jp/qa/q5935135.html ここに回答が付いていますが? 質問は何ですか? おまけにマルチポストですよ。

jm1948
質問者

お礼

お礼が遅くなり申し訳ありませんでした。いろいろ試みたのですが、一活での変換は無理だとわかりましたし、取り込むソフトも問題がありまして、断念いたしました。時間はかかりましたが、新規入力で解決となりました。ありがとうございました。

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

関連するQ&A

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

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

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

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

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

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

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

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

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

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

  • 大量のCSVファイルをExcel形式に変換する

    お世話になります。 大量のCSV(.csvファイルをExcel(.xls)ファイルに変換したい と考えております。 リネームソフトを使って、(.csv)⇒(.xls)の一括変換を したところ、拡張子は確かに.xlsに変換されたのですが、 中身はCSVのままとなっておりました。 (↑ファイル名とシート名が同期を取っているので) このCSVを確実にエクセル形式へと変換したいのですが、 どなた様かいいお考えをお持ちでしたら教えてください。 ググってみたところ、そういったアドインがあるのですが、 できれば費用をかけずに行いたいです…。

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

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

  • C# csvをexcelシートのように表記したい

    VS2017でC#を勉強しています。 複数のcsvファイルをexcelのシートのように表示できますか? ネットで検索すると、excelファイルのシートを表示するサンプルはありますが、 複数csvファイルをシート別に表示させるサンプルがわかりませんでした。 そのような表(ツール)はありますか? 複数ある場合、csvファイルを表示させたいのでdatagridviewのようにカラムが分かれているものを教えてください。 サンプルプログラムを書いていただけますと助かります。 よろしくお願いいたします。

  • 複数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"; 私のコピペ能力ではここまでです。シート名が同じの場合は上書きされそれ以外は新規シートとして追加される方法になれば幸いです。よろしくお願いいたします。

  • 複数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等使う方法でもかまいません。

このQ&Aのポイント
  • パソコンとプリンターを有線LANでつなぎたいのに繋がらないトラブルについて相談します。
  • 繋がらない原因や試したこと、エラーメッセージについて詳しく教えてください。
  • また、関連するソフト・アプリや電話回線の種類についても教えてください。
回答を見る