• 締切済み

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

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

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

Excelの機能にはないと思うので書いてみました。 質問の意図がCSV1かCSV3か不明のためCSV3を出力するようにしています。 『*****』の行をコメント行にするとCSV1で出力します。出力したい矩形範囲を選択して実行します。 ご参考に。 '今はCSV3、*****をコメント行にするとCSV1 Sub csv1or3Write()   Dim rw, rowStr, rowEnd As Long '行カウンタ   Dim col, colStr, colEnd As Integer '列カウンタ   With Selection '出力する選択範囲     rowStr = .Cells(1, 1).Row '開始行     rowEnd = .Cells(.Rows.Count, 1).Row '最終行     colStr = .Cells(1, 1).Column '開始列     colEnd = .Cells(1, .Columns.Count).Column '最終列   End With   Open "C:\--------\----\csvTest3.csv" For Output As #1 '出力ファイル名をセットする!!   For rw = rowStr To rowEnd     For col = colStr To colEnd - 1       If IsNumeric(Cells(rw, col)) Then '*****         Print #1, Cells(rw, col) & ","; '*****       Else '*****         Print #1, Chr(34) & Cells(rw, col) & Chr(34) & ",";       End If '*****     Next     If IsNumeric(Cells(rw, col)) Then '*****       Print #1, Cells(rw, col) '*****     Else '*****       Print #1, Chr(34) & Cells(rw, col) & Chr(34)     End If '*****   Next   Close End Sub

yossiy
質問者

お礼

有り難うございました。 お教え頂いた命令は私もインターネット上で調べてはいました。 実は、この件をお願いしたデータは、縦3万行、横40列という膨大なデータになっている為、お教え頂いた命令で記述した場合、編集作業に膨大な時間がかかってしまいます。 何がしたいかというと、EXCEL VBAでODBC経由でデータ検索(sqlのSELECT文)したいのですが、このダブルコォーテーションがなければ、データとして検索できないのです。 この様なデータを条件検索できるような命令がほかにあればご指導下さい。

関連するQ&A

  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • ExcelでのCSVファイルの編集について、

    ExcelでのCSVファイルの編集について、 オートフィルタ機能を使いたいため、 ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。 私が試してみたこと 1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。   ↓ 2.Excelの「開く」からその○○.txtを読み込む。   ↓ 3.テキストファイルウィザードに従い、   1「カンマやタブなどの区切り文字によって~ 」にチェック   2「区切り文字」→ カンマ、「文字列の引用符」 → "   3「列のデータ形式」 → 文字列 ※090などの数字を、90と先頭の0を消されないように 上記のような手順でCSVファイルを取り込み、編集を終え、 保存する時は   「○○.txtにはテキスト(タブ区切り)と互換性のない機能が含まれている可能性があります。    この形式でブックを保存しますか?」 → このまま保存するため「はい」を選択 これでバッチリOK!…かと思われたのですが、 元の編集前の○○.txt は"名前","ヨミ","電話番号1", …… ""とカンマ区切りであったのが、 編集後の○○.txtは名前 ヨミ 電話番号1  …… タブ区切り(?) となってしまっています。 (CSVファイルとしてはタブ区切りでも問題ないのでしょうが…) どうすれば元のカンマ区切りの形式のまま保存できますでしょうか。 アドバイスよろしくお願い致します。

  • ExcelのCSV形式について

    ExcelデータをCSV形式で保存するとき文字列はダブルコーテーション、数字列はそのままでカンマ区切りしたいです。確か123のCSV形式はそうなってたと思います。お手数ですが御回答、宜しくお願い致します。

  • ダブルクォーテーションカンマ区切りのcsv形式ファイルへの変換方法

    Excelファイルをダブルクォーテーションカンマ区切りのcsv形式ファイルへ変換する方法を教えてください。 "●●","○"○,"◆◆"

  • VBAでCSVファイルのインポートについて

    ACCESS2003でCSVファイルのインポートを行うVBAをご教授下さい。 ただし、CSVファイルは各項目がダブルコーテーションではさまれており、カンマはありません。 1行目にヘッダーがあります。 DoCmd.TransferText acImportDelim, , FileName, ImportPath, True ↑ これだと、うまくインポートされませんでした。 大変困っております。 どうぞよろしくお願い致します。

  • CSVファイルをエクセルで扱うときのカンマの使い方について

    よろしくお願いいたします。 CSVファイルをエクセルで読み込んで、 編集後、またCSVファイルとして保存したいと思います。 CSVファイルをエクセルで読み込んだとき、 エクセルの中の各セルを編集しようとすると、 文字の前にカンマがついていますが、 これがあるのと、ないのでどのような違いが出ますでしょうか。 困っています。 どなたかよろしくお願いいたします。 エクセルで編集時に、カンマを削除してしまうと、 何が起こりますか。 意図したようにCSVとして保存できないのでしょうか。

  • エクセルのカンマ区切りのCSV出力

    エクセルのカンマ区切りのCSV出力について質問します。 CSVファイルとしてカンマ区切りで出力したいのですが、さらに各項目にダブルコーテーション(")をつけて出力したいのです。 例) 通常のCSV 01,02,03 やりたいCSV出力 "01","02","03" ご存知の方がいらっしゃいましたら回答お願いします。

  • ブラウザ上でcsvファイルの編集

    お世話になっています。 ブラウザ上でサーバにあがっているcsvファイルの編集をしたいと思っています。 そこで質問なのですが、 csvファイルをExcelみたいにテーブル表示で編集出来るもの(csvエディタ?)はあるのでしょうか? 特に、行の挿入・削除、列の追加・削除、設定に1行目をタイトルとして認識する、文字列をダブルクォーテーションで括るかどうかなどがあればうれしいです。 なければphpなどで、formとinputで自作ということになるのでしょうが・・・。 既にいいものがあればそちらを使いたいということで質問させていただきました。 http://www.ahref.org/cgi/csveditor/ のものはFirefoxでは動作しなかったので諦めました。

  • ExcelファイルをCSV 形式で保存するには?

    ExcelファイルをCSV 形式 (Windows、カンマ区切り) (*.csv)にして書類を提出するように言われたのですが、その方法について教えてください。 データの内容は会社の詳細で、1社につき100項目のデータがあり、それが50社あります。その場合、1社目のデータをA列に、2社目のデータをB列にというように入力すればよいのでしょうか? Excel の [名前を付けて保存] ([ファイル] メニュー) を使って、CSV (カンマ区切り) (*.csv)ファイルで保存すると、各項目がカンマで区切られるのでしょうか? 1レコード目と2レコード目はどういった区切りになるのでしょうか? またファイル形式はCSV 形式でと言うことですが、提出するファイル名の拡張子を.txtとしないといけないのですが、それはどうすればいいのでしょうか?

  • csvファイルを上書き保存でカンマ区切りされない

    csvファイルのセルに文字を入力して、「上書き保存」をすると ”XXXXX には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか? ” というメッセージが出たので「はい」をクリックして上書き保存しました。 再度そのファイルを開いてみると、カンマ区切りされておらず、各セル内の文字が結合されていました。 そこで質問なのですが、 試しに上記の上書き保存をせず、右上の「ウィンドウを閉じるボタン(×ボタン)」をクリックして、 「保存しますか?」との問いに「はい」と答え、 次に”XXXXX には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか? ” との問いに「はい」と答えた形で保存をすると、きちんとカンマ区切りされていました。 なぜ上記の方法では正常にカンマ区切りされなかったのでしょうか? どうぞよろしくお願いいたします。

専門家に質問してみよう