プロが教える店舗&オフィスのセキュリティ対策術

Excelで加工したデータをCSVで納品する作業を行っています。
その中で面倒な工程があります。

納品時には、カンマ区切りで各項目がダブルクォーテーションで囲まれたCSVが必要なのです。
(”0001”,”XY05”,”請求”,”01”・・・みたいな感じ)

「名前を付けて保存」で、「カンマ区切りテキストCSV」で保存しても
ダブルクォーテーションが付与されないため、
テキストエディタで、
・「,」を「","」に置換
・正規表現で「\n」を「”\n"」に置換
・最後に1行目の先頭に「”」を付与、末尾の"を削除
こうして納品できる状態にしています。

この作業を自動的に行う方法はありますでしょうか?
現在、秀丸を使用してますが、別のテキストエディタのマクロなどで実現できるなら乗り換えても構いません。

A 回答 (6件)

秀丸があるのなら、キー操作の記録を使って一連の操作を登録し、


ショートカットキーなどに割り当ててはいかが。
https://www.ideaxidea.com/archives/2010/06/hidem …

CSVの項目数が一定なら、以下の正規表現でも可能です。
http://pc.dearie.jp/hidemaru/replace/11.html
項目数が5つの場合の例(正規表現)

検索
^(([^,]?)*),(([^,]?)*),(([^,]?)*),(([^,]?)*),((.?)*)$
置換
"\1","\2","\3","\4","\5"

これで、改行以外のすべての項目に「"」が付きます。
    • good
    • 0
この回答へのお礼

そんな方法があるんですね。勉強になりました。
あとはどの方法が早いか、ですね。(開始から終了までの待ち時間)
ちなみに現状の置換だと数十分かかります。100万件あるので。

お礼日時:2020/03/04 18:17

[No.2お礼]へのコメント、


》 …という意味でしょうか?
今は大昔のことなので、具体的なヤリカタは忘却の彼方状態です。
記憶の片隅に残つてゐるのは、同じMS製品なのに、此方基本的に「""」無し、彼方全項目「""」囲いのCSVと不統一だつたことだけです。

余計な雑音を発したことを後悔してをります。
    • good
    • 0

No.3で回答した者です。


すみません、リンクが間違っていました。

2.Windows10でバッチファイルを作成する方法
CSVにダブルクォーテーションをつけるには?
https://errormaker.blog.fc2.com/blog-entry-46.html
    • good
    • 0
この回答へのお礼

バッチファイルでもできるんですね。
表現方法を知りませんでした。後でテストしてみたいと思います。

お礼日時:2020/03/04 18:18

CSVのデータにダブルクォーテーションを付ける方法ですが、ネットで検索するといくつか出てきますね。



1.EXCELにアドインソフトを追加する方法
Excel CSV I/O ~ Excel 2007以降で CSV ファイルを簡単にインポート・エクスポートできるアドイン
https://www.aruse.net/entry/2018/09/12/220211

2.Windows10でバッチファイルを作成する方法
CSVにダブルクォーテーションをつけるには?
https://www.aruse.net/entry/2018/09/12/220211

ネット検索すると、質問者さんの投稿にあるエディタで変換するのが多かったような気がします。
    • good
    • 0

私の古い知識では、同じ Microsoft社の Office の仲間なのに、Accessで作成する CSVファイルは「各項目がダブルクォーテーションで囲まれたCSV」の筈です。


私は今は使ってない(し、今後も使わない)けど、Access のカテゴリーでお尋ねになるなどして、調べてみては如何かと。
その方が Excel で小細工をするより早道かも知れませんよ。
私の記憶違いかも知れないので、そうであれば結果を教えてください。
私は今は使ってないけど、調べてみては如何かと。
    • good
    • 0
この回答へのお礼

Office365を使ってるので、ExcelもAccessも入ってました。

Excelの加工から始まる作業です。ExcelでCSV保存したものを、Accessで取り込んでまたCSV保存する、という意味でしょうか?

お礼日時:2020/03/04 12:06

データがSheet1のA1~D5に入っているとして、Sheet2のA1に以下の式を入れる。


=MID(CONCAT(CONCATENATE(",""",Sheet1!A1:D1,"""")),2,255)
これを、A5までズルズルとコピーする。
[ファイル]→[名前を付けて保存]→[テキスト(スペース区切り)(*.prn)]→[保存]
拡張子を prn から csv に変更する。

です。
    • good
    • 0
この回答へのお礼

そんな工夫の仕方もあるんですね。prnとは考えもしませんでした。後で試してみたいと思います。

お礼日時:2020/03/04 12:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A