- ベストアンサー
VBA CSV形式で保存したいのですが
EXCELで、以下のような表を作成してあります。 A B C 1 あ,10 2 い,20,100 3 う,30 4 え,40,200,か 5 お,50 A列にカンマを含めたデータが入っており、 1000行程度あります。 このようなデータをCSV形式で保存したいのですが、 単純にVBAを組むとそれぞれのデータが""で囲まれます。 また、上記例の3行目(以降)のデータの終わりに「,」が 出力されてしまいます。 例: あ,10 い,20,100 う,30, VBAで、 (1) ""で囲まれることなく、 (2) 行内のデータの個数によって,をつける位置を判断させて (3) セルに入っているカンマ区切りのデータをB列等に分離せずに 保存する方法はないでしょうか? ご教授、よろしくお願いします。
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CSVでは無理です。ていうか、「カンマで値を区切る」形式で値の中 にカンマが含まれてれば、区切りがおかしくならないように何らか の処置をするのがものの道理ってもんです。 テキスト形式(スペース区切り)あたりを使うのが妥当な線じゃない ですかね。xlFileFormatクラスでいうとxlTextPrinterかな。もちろ ん、ファイル名末尾を.csvなどと変えてからエクセルで開くなんて 無茶をしなければ、「B列等に分離」なんてことはありません。
その他の回答 (1)
- ham_kamo
- ベストアンサー率55% (659/1197)
SaveAsでもできるのですが、VBAで保存した後に自分自身のファイル名が *.xls から *.csv(あるいは *.txt など) に変わってしまうので、私は個人的にはあまり好きではありません。(SaveCopyAsでファイルフォーマットを選択できればいいのですが) 要はA列の内容をそのままテキストファイルに出力すればいいのだから、ファイルをオープンして書き込む方法をご紹介しておきます。 なお、このVBAでは XXX.xls を XXX.txt というファイル名で保存しています。 XXX.csv とすると、Excelで開くときに自動的にカンマでセルに分割されてしまいますが、XXX.txt なら、開くときに形式を選択できるからです。 Sub SaveAsTxt() Dim FName As String Dim n As Integer, i As Integer FName = Replace(ThisWorkbook.Name, ".xls", ".txt") n = FreeFile Open ThisWorkbook.Path & "\" & FName For Output As #n For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Print #n, Cells(i, 1).Value Next Close #n End Sub
お礼
ご返答、ありがとうございます。 ご教授いただいた内容は、内容をよく理解し、 今後の自分の発展に役立てさせていただきます。 ありがとうございました。
関連するQ&A
- ExcelファイルをCSV 形式で保存するには?
ExcelファイルをCSV 形式 (Windows、カンマ区切り) (*.csv)にして書類を提出するように言われたのですが、その方法について教えてください。 データの内容は会社の詳細で、1社につき100項目のデータがあり、それが50社あります。その場合、1社目のデータをA列に、2社目のデータをB列にというように入力すればよいのでしょうか? Excel の [名前を付けて保存] ([ファイル] メニュー) を使って、CSV (カンマ区切り) (*.csv)ファイルで保存すると、各項目がカンマで区切られるのでしょうか? 1レコード目と2レコード目はどういった区切りになるのでしょうか? またファイル形式はCSV 形式でと言うことですが、提出するファイル名の拡張子を.txtとしないといけないのですが、それはどうすればいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
- エクセル:VBAで自動的にCSV形式で保存について
複数のシートからなるエクセルブックから、決まった一つのシートを CSV形式で保存するマクロを作成しております。 その際、CSV化するシートは他のシートの値を参照し、数値が""、 もしくは"0"の場合は、表示しないとする数式が1000行まであります。 これは、CSVで保存した際に、無用なデータを含めないようにと 考えたものですが、下記VBAを作りCSV化し保存したファイルは、確かに 数値がある行のみ表示しているものの、データ量が重くなってしまいます。 Application.DisplayAlerts = False Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFile, arg2:=6 この作成されたCSVをあらためて、「名前を付けて保存」でCSVで保存し、 「~には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性 があります。この形式で保存しますか?・・・」の所で、「はい」を選択 すると、データ量が大変少ない量で保存できます。 おそらく、マクロで作成したCSVは、その「互換性のない機能」が含まれて いるのであろうと思いますが、必要としているのは値のデータのみです。 この「互換性のない機能」を省いてCSVで保存する方法をどなたか教えて いただけないでしょうか? 分かりにくい文章で申し訳ありませんが宜しくお願い致します。
- 締切済み
- オフィス系ソフト
- Excelでcsv形式で保存するとき
どうしてもわからないので教えてください。 Excelで、下記のように行によってデータの数が 違うデータをcsvに変換すると、 111 222 333 444 555 666 777 ↓ 111,222,333,444,555 666,777,,, と2行目に余計なカンマがついてしまいます。 これを、 111,222,333,444,555 666,777 というように余計なカンマがつかないように csvで保存する方法はありますか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- EXCEL- VBA(CSVファイル→インポート)
A列~F列になる複数(100個以上)のCSVファイルをエクセルファイルにインポートして更に個別にエクセルファイルとして保存したいのですが VBAでできるのでしょうか? 記憶マクロでやったらどうにもうまくいきません。 エクセルのVBAについては ほとんど知識ゼロなので困っております。 大変厚かましくありますが どなた様かご教授お願いできたらと思います!! 【元のファイルの状態】 ◆ファイル名「*.CSV」*は文字数それぞれ違います。 <例:tanaka.xls だったり 09福島.xls> ◆入っているドライブ TEXT;C:\Documents and Settings\AA_B\デスクトップ\練習 ◆A~F列にデータが入っている 【やりたいこと】 (1)A~F列はカンマ区切りで全て文字列としたい (2)元のファイル名でエクセルとして保存したい「*.XLS」
- ベストアンサー
- オフィス系ソフト
- ExcelのCSV形式について
ExcelデータをCSV形式で保存するとき文字列はダブルコーテーション、数字列はそのままでカンマ区切りしたいです。確か123のCSV形式はそうなってたと思います。お手数ですが御回答、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBA でCSV集計
VBAをはじめて1ヶ月のものです。 VBAの集計ツールを作成していますが 思うようにいかず、お知恵をお借りしたいと考えています。 abcというフォルダ配下に以下のように4桁の日付を示す フォルダが日付毎にあります。(いくつあるかはわかりません。) さらにその配下にいくつかのcsvファイルがおいてありますが aaa.csvというcsvのみ抽出し 最終的には合体.csvのような集計CSVを作成したいと考えています。 以上よろしくお願いいたします。 (1) abc → 0812フォルダ <aaa.csv> A列 B列 C列 1行 100 200 8月12日 2行 100 100 3行 200 200 4行 300 100 5行 100 100 6行 200 200 7行 400 100 8行 100 100 (2)abc → 0813フォルダ <aaa.csv> A列 B列 C列 1行 0 300 8月13日 2行 100 100 3行 100 200 4行 100 200 5行 100 200 6行 300 200 7行 300 400 8行 200 100 ↓ (3)<合体.csv> A列 B列 C列 D列 E列 F列 G列 (日付) (A1~A4計)(A5~A8計)(合体B+C)(B1~B4計)(B5~B8計)(合体E+F) 1行 8月12日 700 800 1500 600 500 1100 2行 8月13日 300 900 1200 800 900 1700
- 締切済み
- オフィス系ソフト
- エクセル VBA 保存したCSVファイルについて
いつもお世話になっています。 早速ですが カンマ区切りのテキストファイルをカンマ区切りで読み込んだあと変更を加え ActiveWorkbook.SaveAs Filename:="Book2.csv", FileFormat :=xlCSV, CreateBackup:=False で保存したものを メモ帳などで開いた時に 不要な箇所にカンマの不要な箇所に沢山カンマが付いてしまいます。 M列まであるのでその分の空白もカンマ区切りで保存されてのだと思うのですが これを、不要な部分の空白を除いた形で保存する方法は無いでしょうか? どうぞよろしくお願いします
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAでのCSVファイルの編集
CSVファイル(ダブルクォーテーション)形式のファイルをEXCEL VBAにて行の編集(削除)をした後、上書き保存をしたらダブルクォーテーション区切りではなくカンマ区切りのCSVファイルの形式になってしまいます。 ダブルクォーテーション区切りのCSVファイルで上書き保存する記述があれば教えて下さい。おそらくEXCELでCSV形式の上書きはCSV2の形式で保存されるみたいです。 困っています。どなたかお助け下さい。
- 締切済み
- オフィス系ソフト
- CSVファイルの保存形式について
Outlookのアドレス帳をCSVで保存する機会があったのですが、MS-DOSカンマ区切りとWindowsカンマ区切りの違いがわかりませんでした。特に気にしなくてよいのでしょうか。それぞれ、何に適していて、どういう仕様なのか、参考までに教えていただけるとありがたいです。
- ベストアンサー
- オフィス系ソフト
- ACCESS「CSV」形式での、保存方法。
ACCESSで作ったデータを「CSV形式(カンマ区切り)」で保存する方法がわかりません。 今日ACCESSに初挑戦しています。(ACCESS2000を使用) 色々調べて、データを「エクスポート」すればいいというところまでは、わかりました。 テキストデータにエクスポートしたのですが、 CSV(カンマ区切り)に変更する方法がわかりません。 よろしくお願いします。 -------------------------------------------------------- 強硬手段で、拡張子を「.csv」に変更してみたのですが、 だめでした。 データ内に、改行のあるHTMLが入っています。 拡張子を強制的に変更したら、 このHTMLタグが、消えてしまいました。 --------------------------------------------------------
- ベストアンサー
- オフィス系ソフト
お礼
ご返答、ありがとうございます。 ご教授いただいた内容でクリアできました。 ありがとうございました。