- 締切済み
【csv】空白セルをカウントさせないためには
エクセルファイルをcsvで保存する際、不要なところにもカンマが付いてしまって困っています。 例) 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24, T,77,2008123,133648,,,,,,,,,,,,,,,,,,,, というように、本文データ(24項目)に対して、フッターデータ(4項目)を最終行に挿入する際、 フッタデータの末尾に不要なカンマ(20個)が付いてしまいます。フッターには4項目以外の値は入っていません。 また、対象の範囲の値の削除し保存してみても、カンマが付いてしまいます。 このカンマを付けずにcsvを保存する方法を教えてください。 この作業は繰り返しの作業になるので、マクロを組みたいと考えています。 宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>尾に不要なカンマ(20個)が付いてしまいます 気にする必要はないのではないかな。エクセル以外の世界にデータを渡すなら、VBAで下記のようにでもして見たら。コード数は少なくて済むものだし、どうにでもなる。 (それにデータ例を説明するとき、24個も書くのでなく、3,4個の例にして、後で質問者で翻案すればよいでしょう。質問は複雑に見せない表現をお願いしますよ。) 例データ A-D列 a1 2 3 4 s f q w e as ーー コード Sub test01() Open "C:\Documents and Settings\xxxx\My Documents\aaa9.csv" For Output As #1 d = Range("A65536").End(xlUp).Row For i = 1 To d s = "" For j = 1 To 10 If Cells(i, j) = "" Then Exit For s = s & Cells(i, j) & "," Next j Print #1, Left(s, Len(s) - 1) Next i Close #1 End Sub -- 結果 メモ帳で a1,2,3,4 s,f q,w,e as ーーーー >フッタデータ エクセルでのフッター情報が自動的にCSVファイルに入りましたっけ? 意味的にフッターに入るべきデータという使い方ですか。
- fujillin
- ベストアンサー率61% (1594/2576)
No2様の回答の参考サイトに必要なことはほとんど出ていますが、UsedRangeの範囲を矩形で出力しているので、そのままではご質問の部分に関するところは変更しないとうまくいきませんね。 No1様もご指摘のように、空白セルでも保存するものとカットするものなどがあると思われますし、空行の処理(あるのかないのかわかりませんが)なども必要です。また、セルの値に「,」が含まれている場合、うっかりそのまま出力すると、そのカンマがセパレータと解釈されてしまいます。
- yukika-37
- ベストアンサー率39% (26/66)
>この作業は繰り返しの作業になるので、マクロを組みたいと考えています。 マクロを使うのが前提であれば、自力でCSVファイルを生成すればよいのでは? 実際にやったことはないですが、CSVファイル生成についてはこの辺が参考になるのでは。 (ググればもっといいサイトがあるかもしれません) http://www.k1simplify.com/vba/tipsleaf/leaf292.html ちなみに、フッタの「2008123」って日付データですよね。 これだと1月23日か12月3日か分らないけどいいのかしら、とちょっと気になってしまいました。
- adobe_san
- ベストアンサー率21% (2103/9759)
教えて下さい。 なぜ空白カンマを削除したいのですか? その空白カンマはセルに何も情報が入ってないことを意味してます。 削除するとその分セル数減りますよ。 基本24項目で必要なのが4項目なら当然20項目分の空白が存在してます。 それを削除すると基本4項目になりますよ。 数が合わないので、取り込みに問題が出ませんか?