• ベストアンサー

VBAでエクセルで作成したファイルをCSVで出力するコードは?

エクセルで作成したファイルが、どうしてもCSV形式で保存さすことが出来ません。無理なのでしょうか。また、出力したCSVファイルでは、ある特定された文字を別の文字に置換えさせることをを自動で行うことは不可能なのでしょうか?宜しくお願いします。

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

  • ベストアンサー
  • Knl_Panic
  • ベストアンサー率38% (20/52)
回答No.2

こんにちは。 ExcelブックをCSV形式で保存するにはSaveAsメソッドの保存ファイル名のあとに","で区切り、"xlCSV"のファイル形式を指定すれば行うことができます(自動的にカンマ区切りになります)。書式は下記の通りです。 ActiveWorkbook.SaveAs("ファイル名.csv",xlCSV) また、特定の文字を別の文字に変換する場合ですが、正直マクロより手でやったほうが早いのですが、どうしても、と言うことであれば、下記のマクロで行うことができます。 Sub 置換マクロ() OpenText("CSVファイル名") Cells.Replace What:="置換前の文字", _     Replacement:="置換後の文字", _     LookAt:=xlPart, SearchOrder :=xlByRows, _ MatchCase:=True, SearchFormat:=False, _ ReplaceFormat:=False ActiveWorkbook.SaveAs("CSVファイル名",xlCSV) これでうまくいかなかったと言うことでしょうか。 そうでなければ試してみてください。

y3640006
質問者

お礼

早速のご回答ありがとうございました。同じくCSV形式で保存するために「Sub   マクロ()~End Sub」の中に記述すると「コンパイルエラー 構文エラー」と表示されうまくいきませんでした。初心者のためどこか基本的なことがわかっていないようでご迷惑をおかけします。また、Sub 置換マクロ()についても上記のコードの下に付けると、一旦CSV形式に変換して、更にそのCSVファイルの特定の文字を置き換えることが出来るのでしょうか?

その他の回答 (3)

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.4

No.1の補足です。 後半の置き換えの件ですが、出力した後にCSVファイルの特定の 文字の置き換えができるかということでしょうか? それなら標準では無理です。 VBScriptなどで自分でロジックを作るか、下記のようなフリーソフトを 使用すれば可能です。 http://www.vector.co.jp/soft/win95/util/se271454.html

y3640006
質問者

お礼

ありがとうございます。ご紹介いただいたフリーソフトは勉強してみたいと思います。今回は、出来れば簡単なコードがあればそちらを使ってみたいと思います。何を行いたいかと言うと、エクセル形式で入力専用のシートに最小限のデータ(例:8桁の西暦)を入力させ、別シートに関数を活用してあるべきデータの形(例:元号を和暦の6桁)に変えて、必要な列数だけを選択して、一旦CSV形式(全列にカンマが振られる)に出力させて、特定の行の空白列にも振られた余分なカンマを削除(置換による方法を検討)して保存したいと考えています。そうすればCSV形式のファイルがシステムに取り込むことが出来るためでです。ややこしい言い回しで申し訳ありません。

  • Knl_Panic
  • ベストアンサー率38% (20/52)
回答No.3

No.2の訂正です。 後半のマクロの最終行に下記の行が抜けていました(コピー漏れ)。 End Sub 大変失礼しました。謹んで訂正いたします。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

CSVファイルへの保存例です。応用してください。 Sheets("Sheet1").SaveAs Filename:="c:\test.csv", FileFormat:=xlCSV ご質問の後半はちょっと意味がわかりませんでした。

y3640006
質問者

お礼

早速のご回答ありがとうございました。初心者のためSub test()~End Subの中に、入れていましたが、「コンパイルエラー 構文エラー」と表示されました。ご迷惑をおかけします。

関連するQ&A

  • Excel をCSVで出力できません。

    OS/Win7 Excel 2007  Excel表をCSV形式で出力したい。「ファイル名保存」「ファイルの種類―CSV」を指定すると、下記メッセージが出て、CSV形式で出力できません。 「(出力ファイル名.CSV)には互換性のない機能が含まれている可能性があります。」 単にテキストデータとしてなら出力できますが、このテキストファイルからOPEN文で読み込むと 1レコード全体を読み込めません。解決方法を教えてください。 同窓会の宛名書きを今週中にもしなければなりませんので、大変困っています。よろしくお願いします。

  • EXCEL VBAでのCSV出力について

    EXCELに入力されたデータをCSV出力するプログラムを作成しました。データには日付が入っており年月日がYYYY/MM/DDの形で入力されています。これをハンド作業で名前をつけて保存でCSVに出力すると年月日はそのままの状態で保存されますが、VBAで保存するとMM/DD/YYYYの形になってしまいます。この状態で保存されると、次にEXCELで読み出すと年月日が文字列扱いになってしまいます。新しいマクロの記録で行っても結果は同じでした。 VBAで保存する際、YYYY/MM/DDで保存する方法はないでしょうか。 また、MM/DD/YYYYで保存されたCSVを日付としてEXCELに認識させる方法はあるでしょうか。 教えてください。よろしくお願いします。

  • VBAでCSV出力 一番シンプルなコードを教えて

    ExcelのVBAで、「1シート目をUTF-8の文字コードでCSV出力」する一番シンプルなコードを教えてください。 ネットで調べるとパラメータを設定したり複数シートを繰り返したり、余計な処理が入っていて、どこが余計な処理なのか分かりません。 (条件) Excelファイルの名前「作業ファイル.xlsx」 1シート目は「作業シート」 出力するファイルは「作業ファイル.csv」 1シート目を一切編集せずそのまんま出力したい (添付画像と全く同様の処理をしたい)

  • EXCEL VBAでのCSVファイルの編集

    CSVファイル(ダブルクォーテーション)形式のファイルをEXCEL VBAにて行の編集(削除)をした後、上書き保存をしたらダブルクォーテーション区切りではなくカンマ区切りのCSVファイルの形式になってしまいます。 ダブルクォーテーション区切りのCSVファイルで上書き保存する記述があれば教えて下さい。おそらくEXCELでCSV形式の上書きはCSV2の形式で保存されるみたいです。 困っています。どなたかお助け下さい。

  • エクセルVBAを教えてください

    エクセルVBAを教えてください Gmailの「CSV 形式でユーザー リストをダウンロード」で作成されたCSVを開くと 氏名が文字化けしています それを手作業で 1.メモ帳で開き 2.「名前を付けて保存」で「文字コード=ANSI」で上書き保存して閉じる をしていますが、手間なのでエクセルVBAで自動化したいと思っています エクセルVBAのコーディングを教えてください ネットで探したのですが見つからなくて… ※ファイルの選択などのコーディングは分かりますので、固定のファイル名で結構です 宜しくお願いします

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • csvをVBAを使ってエクセル形式で保存したい

    タイトルのとおりなのですが、csvをVBAを使ってエクセル形式で保存したいのですが、その際ひとつ条件がありまして作成するエクセルファイルをcsvと同じ名前にしたいと思っています。  csvのファイル名は都度変わってしまうため私の現在の知識ではVBAを作成することができません。  教えて下さい。よろしくお願いします。

  • ExcelのCSVファイル出力について

    Excelが出力したCSVファイルを扱うプログラムに関する質問です。 Windwosの[コントロールパネル]⇒[地域と言語のオプション]で、 小数点の記号を「.(ピリオド)」から「,(カンマ)」に変更しました。 するとExcelからCSVファイルを出力したときの各データの区切り文字が 「,(カンマ)」から「;(セミコロン)」に変わるようなのですが、 これに対応できるプログラムを作りたいと考えています。 CSVファイルの区切り文字は、Windowsのロケール情報として プログラム上から取得可能なのでしょうか?

  • CSV出力時の改行コードについて

    こんにちは。 現在、PHPからCSVファイルを出力する処理を作成しています。 そこで改行文字を"\n"にしてCSVファイルを出力してExcelで 開くと改行されておりますがノートパッドで開くと改行されて いませんでした。 ノートパッドでも改行される作りにしたい場合はどのように すればよろしいでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 【Excel】Excelで作ったファイルをCSVで保存するには?

    超初心者な質問ですみません。(>_<) Excelで作成したファイルをCSVで保存したいんです。 (1)Excelファイルを開く。 (2)「名前をつけて保存」を選択し、ファイル名のお尻にYYYYMMDDをつけ(Product_20050901.csv)、「ファイルの種類」を「CSV(カンマ区切り)」にして保存する。 (3)指定フォルダにCSVファイルが作成される。 (4)出来上がったCSVファイルを開こうとすると、「SYLK:ファイル形式が正しくありません」という警告が出てファイルが開かない。 という現象が起きてしまいます。 何がいけなかったんでしょう? どうしたらCSVで保存できますか?教えてください!