• 締切済み

【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を保存する方法を教えてください。 この作業は繰り返しの作業になるので、マクロを組みたいと考えています。 宜しくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

>尾に不要なカンマ(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)
回答No.3

No2様の回答の参考サイトに必要なことはほとんど出ていますが、UsedRangeの範囲を矩形で出力しているので、そのままではご質問の部分に関するところは変更しないとうまくいきませんね。 No1様もご指摘のように、空白セルでも保存するものとカットするものなどがあると思われますし、空行の処理(あるのかないのかわかりませんが)なども必要です。また、セルの値に「,」が含まれている場合、うっかりそのまま出力すると、そのカンマがセパレータと解釈されてしまいます。

  • yukika-37
  • ベストアンサー率39% (26/66)
回答No.2

>この作業は繰り返しの作業になるので、マクロを組みたいと考えています。 マクロを使うのが前提であれば、自力でCSVファイルを生成すればよいのでは? 実際にやったことはないですが、CSVファイル生成についてはこの辺が参考になるのでは。 (ググればもっといいサイトがあるかもしれません) http://www.k1simplify.com/vba/tipsleaf/leaf292.html ちなみに、フッタの「2008123」って日付データですよね。 これだと1月23日か12月3日か分らないけどいいのかしら、とちょっと気になってしまいました。

  • adobe_san
  • ベストアンサー率21% (2103/9760)
回答No.1

教えて下さい。 なぜ空白カンマを削除したいのですか? その空白カンマはセルに何も情報が入ってないことを意味してます。 削除するとその分セル数減りますよ。 基本24項目で必要なのが4項目なら当然20項目分の空白が存在してます。 それを削除すると基本4項目になりますよ。 数が合わないので、取り込みに問題が出ませんか?

関連するQ&A

  • エクセル:VBAで自動的にCSV形式で保存について

    複数のシートからなるエクセルブックから、決まった一つのシートを CSV形式で保存するマクロを作成しております。 その際、CSV化するシートは他のシートの値を参照し、数値が""、 もしくは"0"の場合は、表示しないとする数式が1000行まであります。 これは、CSVで保存した際に、無用なデータを含めないようにと 考えたものですが、下記VBAを作りCSV化し保存したファイルは、確かに 数値がある行のみ表示しているものの、データ量が重くなってしまいます。 Application.DisplayAlerts = False Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFile, arg2:=6 この作成されたCSVをあらためて、「名前を付けて保存」でCSVで保存し、 「~には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性 があります。この形式で保存しますか?・・・」の所で、「はい」を選択 すると、データ量が大変少ない量で保存できます。 おそらく、マクロで作成したCSVは、その「互換性のない機能」が含まれて いるのであろうと思いますが、必要としているのは値のデータのみです。 この「互換性のない機能」を省いてCSVで保存する方法をどなたか教えて いただけないでしょうか? 分かりにくい文章で申し訳ありませんが宜しくお願い致します。

  • マクロでのcsv読み込みについて

    エクセルのマクロにてcsvファイル(カンマ区切り)のデータを読み込むマクロを制作しているのですが、そのcsvファイルが1行めを2行目がデータ本体ではない為カンマの数が違い、openを使って読み込みを行うとうまくいきません。何かいい方法はないでしょうが。よろしくお願いいたします。

  • Excelでcsv形式で保存するとき

    どうしてもわからないので教えてください。 Excelで、下記のように行によってデータの数が 違うデータをcsvに変換すると、 111 222 333 444 555 666 777    ↓ 111,222,333,444,555 666,777,,, と2行目に余計なカンマがついてしまいます。 これを、 111,222,333,444,555 666,777 というように余計なカンマがつかないように csvで保存する方法はありますか? よろしくお願いします。

  • CSVファイルを自動で加工したいのです

    お世話になります。データをダウンロードすると、添付ファイルの水色部分のようになります。 そのCSVファイルを元に、売り上げ明細(納品書)を作成する際、今までは、データをダウンロード後、エクセルに落とし、1行のデータにするために、 1.必要な項目列(添付ファイルの水色の部分)(型番2、商品名2、数量2、単価2、型番3、商品名3、数量3、単価3・・・・単価5)を挿入します。 2.水色の部分を挿入した項目列にコピー&ペーストします。 3.数量*単価を計算します。(単価の隣に列を挿入し計算し、その後、値でコピーしています) 4.アクセスに取り込み、納品書をプリンターします。 以上が簡単な手作業の手順です。 当方、BV,マクロ記述の知識はありません。 毎回のダウンロードは、同じ項目、順番です。 アクセスに取り組む際は、『1行』でないといけないという固定観念がありますが、 当方のスキルがもっとあれば、CSVファイルをアクセスに直接取り込める方法があるのでしょうか? できるだけ作業を減らしたいという考えからの、おもいつき程度のことです。しかしながら、元のCSVファイルは、1発注1行形式のデータ形式でないため、やはり無理なのか? とも思います。 作業1から3までを自動でできたら、どんなに効率が良いかと何度もトライしましたが、出来ずに ずっと悩んでおります。 どなたかの確かなスキル(BV記述例)、アドバイスをお願い致したく、投稿いたしました。 よろしくお願い致します。

  • Excel:値のある行だけをcsv保存したい

    エクセル(2003、2007)でcsvデータで保存をするマクロを作る際、 「式」ではなく、「値」がある行だけ書き出したいと考えております。 例えば図のようにsheet1に表があり、それを元にsheet2に データを転記する場合、sheet2にはそれぞれ転記する為の「式」 が入る事になると思います。 【=IF(Sheet1!A10="","",Sheet1!A10)】など このままマクロでcsvとして吐き出した場合、「式」が入っている行が 全て書き出されてしまうのですが、あくまで「値」が入っている行だけ csvとして抜き出したいです。 ※なお、csv書きだし自体は以下のサイトを利用させて頂いております。   ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html お手数ですが何か手法があれば、ご教授頂けると助かります。 宜しくお願い致します。

  • XLS→CSVでセルの末尾のスペースが?に

    いつもお世話になります。エクセルのA列に、末尾に1つor2つのスペースをもつデータが入っています。このエクセルファイルをCSV形式で保存すると各セルの末尾にスペースの個数分だけ?がついた結果となりました。 例 xls:○○○_(末尾にスペース1つ) ↓ csv:○○○? この末尾のスペースを消そうと、xlsシートでTRIM(A1)のデータを試みましたがスペースは消えていません。CSVでTRIM関数を使うとセルデータがすべて消えます。このxlsでのスペース(csvの?)は消せないのですか?あるいはこれはスペースでないのでしょうか?ご教授いただければ幸いです。

  • CSVデータをエクセルのセルに入れたい・・・

    よろしくお願いします。 CSVデータを当方ではエクセルで開いてます。 カンマ区切りごとのデータがエクセルのセルに1つずつ入力されてるので 不用データを行や列ごと削除できるので便利に使っていました。 が、他のPCでデータを同じように加工しようとしたところ、最初のセルに全て連続して入っているという状態で、上記のような作業が出来ませんでした。 5台のPCともXPでエクセル2003です。 テキスト形式・タブ区切り・カンマ区切りなどなど専門的なことが良く判っていないため、説明もうまくできませんが、PCの設定なのか?セルに1つづつ分ける方法があるのか?何でわたしのだけ? ?? 引継ぎが出来ず困っておりますのでどなたかお願いします。教えてください!!

  • csvファイルをxlsファイルへ取り込み

    xlsファイルにシート「Sheet1」だけあったとします。 そこからマクロで、 「csvファイルの選択」   ↓ 「csvファイルを選択してそれをシートの末尾へ挿入していく」 ようなマクロができないか考えています。 すいませんが教えていただけないでしょうか?

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

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

  • CSV形式にすると出てくる空白を消したいです。

    エクセル形式で、表を作ってCSV形式で保存するのですが、 CSV形式で保存したデータをメモ帳(テキスト形式)で開くと、 エクセル・CSV形式の時には表示されていなかった空白(半角スペース)が出来てしまっています。。。 業務上必要なデータで、項目には半角英数13ケタの数字しか入力してはいけないのですが、 その空白が出来てしまってしまうので、エラー扱いにされてしまいます。 どのようにすればテキスト形式で表示したときにこの空白が生れないように出来るのでしょうか? 宜しくお願い致します。

専門家に質問してみよう