10代と話して驚いたこと

エクセルから特定のシートをCSVで出力して、そのCSVをテキストで開いて先頭にカンマを1つ追加するというのを自動で行いたいです。(あるシステムで読み込ませるのに先頭文字がカンマでないといけないので)
例:
1,1,0,東京都,トウキョウト
↑これを ↓このように
,1,1,0,東京都,トウキョウト

そもそもエクセルからCSV出力する際に、先頭にカンマを入れることができれば、わざわざその後にテキストで開いてカンマを追加するという作業もいらないのですが。。

ちなみにVBAで特定のシートをCSVで保存するところまではできました。
(A1を空白にしてCSV出力しましたが、先頭にカンマは入りません。)

どなたかご教授願います。

A 回答 (5件)

A列に1列挿入し、


A1セルの書式を「文字列」にしてください。

なお、A列全体ではなく、A1セルのみに設定すること。
これが肝心。
    • good
    • 3
この回答へのお礼

出来ました!マクロでやらないと無理かと思っていましたが、こんな簡単にできるなんて。ありがとうございました!

お礼日時:2022/10/15 17:50

A列に1列挿入して、ワークシート全体を右に1セル分ずらす。


1行目に1行挿入し、ワークシート全体を下に1セル分ずらす。
A1セルに "Dummy" とでもダミーデータを入れる。
CSVでエクスポートする。
何らかのプログラム(コマンドプロンプト、PowerShellなど)で、「追加した”Dummy”を含んでいる1行目」を削除する。

こんな手順でOKだろうと思いますがいかがでしょう。

・・・

コマンドプロンプトやPowerShellの使い方は自身で調べてください。
……そもそもコマンドプロンプトやPowerShellでカンマを追加しろという話もある。
    • good
    • 0

Do Whileを2重にしてCSV処理してるなら、自分で先頭に","を付加する様にするだけ。


どーやってるの?
    • good
    • 0

こんにちは



>先頭にカンマを1つ追加するというのを自動で行いたいです。
各行の先頭でよいのか、ファイルの先頭だけなのかどちらなのでしょうね?

いずれにしろ、エクセルの「保存」で「CSV保存」をさせるような方法だと、先頭にカンマが着くようなことはできませんので、一旦出力してから、後でカンマを付け加える方法になってしまいます。


>そもそもエクセルからCSV出力する際に、先頭にカンマを入れることができれば、~
VBAで出力しているとのことですので、ご指摘の通り、出力の際にカンマを付加しておけば宜しそうです。
以下は、通常のCSV出力のごく簡単な例ですが、1セルずつ出力しますので、行の先頭にカンマを加えれば宜しいのではないでしょうか。
https://tonari-it.com/vba-write-csv/
(ごく簡単な例なので、そのままで質問者様の処理に合っているかは不明です)


具体的な記述方法やロジックは他にも様々ありますので、検索してみればいろいろ見つかると思います。
また、セル値にカンマやダブルクォーテーションを含むようなケースでは、対応処理が必要になります。
(「CSV保存」機能ならエクセルが処理してくれますが、個別に出力する場合は処理が必要になります)
    • good
    • 1

A列を挿入して空列にしてCSVで保存すればよい

    • good
    • 2

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

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


おすすめ情報