• 締切済み

CSVデータの文字列置換

かなり、困っております・・・。 「c:\csv_data」に複数のcsvデータが入っており、csvに含まれている "00ABC"を"00000"に変換させたいです。 (フォルダ内の全てのcsvを変換させたいです) 一度作ってみたんですが、Excel-VBAでCSVファイルを開いて編集をかけると書式が失われてしまう為、だめでした・・・。 そこで ・Excel-VBAでの良い方法 ・BATファイルで拡張子csv⇒txtに開いてからの編集⇒csvへ といった2つの方法(どちらか)がであれば作業工程上、他の処理と同時に 自動化できることからこの2つの方法での文字列変換方法を知りたいです。

みんなの回答

  • zzz_sheep
  • ベストアンサー率21% (36/166)
回答No.2

私が同様の問題で処理した手順です。 まず、念の為に元ファイルからコピーを作成します。 コマンドプロンプトを起動して、以下のコマンドを使って CSVファイル全部の拡張子をTXTに置き換えてコピーします。 xcopy c:\csv_data\*.csv c:\copy\*.txt 次にフリーの文字列置換ソフトを使って、 C:\copy内の全てのtxtの文字列を置換します。 (私の場合は「みやぐれっぷ」を使いました。) (参考URLは「みやぐれっぷ」の作者様のHPです。) 最後に拡張子TXTをCSVに戻します。 xcopy c:\copy\*.txt c:\result\*.csv 作業が終わったら c:\copyはもう用済みなのでエクスプローラーで削除 c:\result内の全てのファイルをc:\csv_dataに上書きさせる c:\resultはもう用済みなのでエクスプローラーで削除 No1の人と比べるとめんどくさいw

参考URL:
http://www.bea.hi-ho.ne.jp/marbo/
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

参考 URL のプログラムを使って BAT ファイルで一括全置換できると思います。 for %%i IN *.csv DO chikan %%i 00ABC 00000 などで。 for 文について詳しくはコマンドプロンプトで確認してください(for /?)

参考URL:
http://www.vector.co.jp/soft/win95/util/se271454.html

関連するQ&A

  • csv ファイルのデータを文字列として開く

    csv ファイルを開いた時に、最初から 全てのセルの 「セルの書式設定 > 分類」を「文字列」にすることは出来ますか? 一度、拡張子を txt に変えて 「テキスト ファイル ウィザード」 「列のデータ形式」を文字列にするのは知っているのですが、 ・拡張子を変える ・エクセルを開く ・ファイルを選ぶ ・全ての列を選択 ・文字列にする と非常に面倒なので csv ファイルのままでファイルを開いたら 最初から文字列にする方法を探してます。 お願いします。

  • CSVファイルへの文字列データの書き出しについて

    OS:WindowsXP、Excel:2003 です。 Excelマクロ(VBA)で、あるデータをCSVファイルに出力しているのですが、 文字列型(String)を書き出すと、必ずダブルクォーテーションで囲まれます。 CSVへ書き出すときは、そういう仕様になっているということは分かったのですが、 処理の都合上、どうしてもダブルクォーテーションで囲まずに書き出ししたいと思っています。 そういう場合にはどのようにすれば良いのか教えて下さい。 ちなみに、書き出しは「Write」を使っています。

  • CSVに変換するとデータが変わる

    ORACLEからSPOOLで表をCSV出力したのですが、なぜかある列だけの文字列が日付け型になってしまいます。 列のデータ型はVarchar2です。 TXTファイルにすると文字列で表示されます。 ファイルを開くExcel側に問題があるのでしょうか? 環境はORACLE9i、office2003です。

  • Excel2000でCSVの読み込み時書式指定

    .txtを読み込むと最初に区切り指定やフィールドの書式指定が 表示されますが、.csvでも表示させることはできますでしょうか? 「123456789012345」といったものが「2E+14」とか勝手に変換 されるので、いちいち拡張子を.txtにして、全フィールド「文字列」 に指定して読み込ませているので非常に効率が悪いのです。 もしくは読み込み時のデフォルト書式を「文字列」にするという 方法はありますでしょうか?

  • ExcelのVBAでCSVを読み込むと通貨になる

    Excel2010のVBAでCSVファイルを読み込んで処理させたいのですが、読み込んだデータをExcelが勝手に別のデータに変えてしまうので困っています。 例えば、123,456というデータは、フィールドにカンマがあるので、CSVでは"123,456"となりますが、これを以下のようなVBAのコードで読み込ませると、書式が通貨として扱われてしまって、データも123456になってしまいます。文字列として読み込まれていれば正しいデータとして読み込まれるように思うのですが、文字列として読み込ませる方法が分かりません。正しく元のデータ123,456のまま読み込ませるにはどうすればいいのでしょうか。 なお、CSVの各フィールドにカンマやダブルクォーテーションが混在していると、各フィールドに分割する処理が複雑でよく分からないので、下記のコードのようにExcelの機能でCSVを各フィールドに分割される方法で読み込ませたいです。 よろしくお願いします。 Workbooks.Open Filename:= "file.csv"

  • CSVの空カラムの置換

    空カラムに対して文字列を入れるバッチを作成したいのですがうまく動作いたしません。 下記のようなtest.csvがあります。 abc,12345 def, xyz,98765 2行目が空カラムになるためここに特定の文字列「¥-」を入れ 下記のようなCSVを生成したいです。 abc,12345 def,¥- xyz,98765 実際にはこれが数百行あり、いくつか空カラムがある想定です。 タスクスケジューラーで実施するため、簡単にbatファイルで出来ればと思っています。 ご教示いただけますか?

  • csvファイルの「0」文字表示

    ExcelにてCSVファイルを開いた場合、「0001」(CSV側)というデータは、0が削られ「1」(Excel側)へと変換されてしまいます。 Excelで開いた際に、はじめから0001の状態で(後でセルの書式設定でいじるのではなく・・・)表示したいのですが、どうしたら宜しいでしょうか?

  • ACCESS CSV形式でエクスポートしたい

    ACCESSで作成したデータをCSV形式でエクスポートしたいです。 ファイルの種類で「テキストファイル(*.txt;*.csv;*.tab;*.asc)」を選択すると 拡張子txt で保存されてしまいます。 もちろん、あとで拡張子を変更すればよいのですが、保存の際に CSV形式にすることは不可能でしょうか?? VBAなど難しいことは、わからないので、出来なければ結構です。 よろしくお願いいたします。

  • CSVで【12-13】のデータが【12月13日】と表示されてしまう

    タイトルの通りですが、CSVでファイルを保存して、保存したファイルを開いた時に、元の【12-13】データが【12月13日】と表示されてしまいました。 インタネット上で調べると、データの元の形へ変換する方法が分かりになりましたが 問題として、どこかで書式を設定しておいて、これからいつでもCSVファイルを開くと文字列の形で表示したいと考えています。 設定方法はご指導宜しくお願い致します。有難うございます。

  • どの名前のcsvでも、マクロで取り込めるようにしたい。

    Excel2000のVBAで作成しております。 csvファイルからデータを取り込み、セットするマクロを作りたいのですが、 マクロファイルオープン時に選択するcsvファイルを、 その後のデータ抽出作業工程で対象にする時には、 どのように書けば良いのでしょうか? Workbooks("*.csv").Activateと書いてもエラーになってしまいました。 例えば Workbooks("オケーウェブ.csv").Activateと書けば オケーウェブ.csvをActivateに出来ることは分かったのですが、 その時によって、 オケーウェブ.csv ABC.csv 報告書.csvなどと、選択するcsvファイル名が異なります。 マクロファイルオープン時の一番最初に選択したcsvファイルをActivateにするには、 どのように書けば良いのでしょうか? どなたかご教授をお願いいたします。

専門家に質問してみよう