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

マクロ / VBA

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が多数あっていちいち名前を付けて保存・・・・が面倒!という時のマクロです。

XLSファイルは一度保存してからの方が良いでしょう。
XLSファイルが保存されている場所に「(XLSファイル名)_(Sheet名).csv」という名前で保存されます。
19-1.jpg
2012.03.05修正
 一部VBAの変数にタイプミスがありました。

Comment

  1. mnishi より:

    まさに探していた内容なのでありがたく使わせていただきます。
    以下の wsNname がミスタイプされています。^^
    ws.SaveAs Filename:=csvPrefix + "_" + wsNname + ".csv",
    FileFormat:=xlCSV, CreateBackup:=False
    お知らせまで。

  2. isakat より:

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

  3. 株初心者 より:

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

コメントをどうぞ

メールアドレスが公開されることはありません。

検索 COUNTIF バーコード 履歴書 SUMIF NA() VLOOKUP ワイルドカード フロー図 偏差値 テンプレート SUM 配列数式 目標 図形 封筒 ネットプリント チルダ クイズ STDEV 条件付き書式 無料 COLUMN XLSTART コピペ TODAY 標準報酬月額 作業効率UP コンビニ 印刷
  • 関西在住の30代サラリーマン。事務職で毎日Excelと戯れています。
    システム導入なんて資金が無い!Excelでなんとかやりたい零細中小の社長さん・事務員さんの力になればと思います。
    詳しいプロフィール


PAGE TOP ↑