Articles

シート毎にファイルを自動保存してみる(CSV)

この記事をdel.icio.usに登録する この記事をはてなブックマークに登録する この記事をGoogleブックマークに登録する この記事をYahoo!ブックマークに登録する この記事をdiggに登録する この記事をlivedoor clipに登録する この記事をNewsGattor Onlineに登録する

CSV?

まずCSVファイルについて説明しておいたほうが良いでしょうか。
CSVとは
 データをカンマ(",")で区切って並べたファイル形式。主に表計算ソフトやデータベースソフトがデータを保存するときに使う形式だが、汎用性が高く、多くの電子手帳やワープロソフトなどでも利用できるため、異なる種類のアプリケーションソフト間のデータ交換に使われることも多い。実体はテキストファイルであるため、テキストエディタやワープロなどで開いて直接編集することも可能。
(引用:IT用語辞典)

例:テキストファイルで開くと下記のようなデータになります。
123,456,789
987,654,321
これをExcelで開くと
A
B
C
1
123
456
789
2
987
654
321
となります。

ではXLSファイルをCSVファイルに形式を変えて保存するには?



CSV形式で保存

 「ファイルを名前を付けて保存」する際にファイル形式をCSVに変更するだけですが、Excelは複数のSheetというものを扱います。CSVはただ単なるカンマ区切りされたデータですので複数Sheetなんてあり得ません。よって、保存しようとすると「選択したファイルの種類は複数のシートを含むブックをサポートしていません。」という忠告メッセージが出ます。そのままOKを押すと選択したSheetのみをCSVファイルとして保存してくれます。


複数あるシートをマクロで自動に・・・

さて本題です。
上記にてXLSのSheetをCSVに保存する事は出来ますが、Sheetが多数あっていちいち名前を付けて保存・・・・が面倒!という時のマクロです。
Sub Save_CSV()
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
wsName = ws.Name
ws.SaveAs Filename:=csvPrefix + "_" + wsName + ".csv", FileFormat:=xlCSV, _
CreateBackup:=False
ws.Name = wsName
Next
End Sub

XLSファイルは一度保存してからの方が良いでしょう。
XLSファイルが保存されている場所に「(XLSファイル名)_(Sheet名).csv」という名前で保存されます。
19-1.jpg


2012.03.05修正
 一部VBAの変数にタイプミスがありました。
関連記事




この記事をdel.icio.usに登録する この記事をはてなブックマークに登録する この記事をGoogleブックマークに登録する この記事をYahoo!ブックマークに登録する この記事をdiggに登録する この記事をlivedoor clipに登録する この記事をNewsGattor Onlineに登録する

トラックバック一覧

コメント一覧

Re: シート毎にファイルを自動保存してみる(CSV)

  • 2007/07/06
  • 名無しのExcel使 ◆ aIcUnOeo
  • [ URL ]
  • [ 編集 ]
Re: シート毎にファイルを自動保存してみる(CSV)

まさに探していた内容なのでありがたく使わせていただきます。
以下の wsNname がミスタイプされています。^^

ws.SaveAs Filename:=csvPrefix + "_" + wsNname + ".csv",
FileFormat:=xlCSV, CreateBackup:=False

お知らせまで。

  • 2012/03/05
  • mnishi ◆ -
  • [ URL ]
  • [ 編集 ]
Re: Re: シート毎にファイルを自動保存してみる(CSV)

>mnishi さん
お知らせ有難うございます!
早速修正させて頂きました。

  • 2012/03/05
  • isakat ◆ -
  • [ URL ]
  • [ 編集 ]
Re: シート毎にファイルを自動保存してみる(CSV)

とても魅力的な記事でした!!
また遊びに来ます!!
ありがとうございます。。

  • 2012/08/20
  • 株初心者 ◆ -
  • [ URL ]
  • [ 編集 ]
コメント投稿フォーム
Name
Subject
Mail
URL
Comment

Password
Secret
管理者にだけ表示を許可する

Navigations, etc.

Navigations

ブログ記事を検索

SPONSORS

人気記事ランキング

ブログパーツ

メールフォーム

名前:
メール:
件名:
本文:

Tweet

最新記事