dポイントプレゼントキャンペーン実施中!

CSV形式で保存する際に空白行を削除して上に詰めて保存したいです。
マクロ実行する場合どのようにコードを書いたらいいでしょうか?
初心者なのでよろしくお願いします。

A 回答 (4件)

> CSV形式で保存する際に空白行を削除して上に詰めて保存したいです。



無条件にExcelの1行をCSVレコードとして取り出す方法がわかっているのであれば、そのレコードの文字列長が0文字ならCSVファイルへの書き出しをせずに次の行の抽出に進めばよいだけのことです。

ちなみに1行の全列のデータを抽出して1個もデータが無かったのに「,」とか「",」とかだけのレコードが出来ていたら、それはデータ抽出ロジックのバグです。(^^;


以下余談ですが。。。
CSVファイルの取り扱いはプラットフォーム(=OS)やCSVファイルを扱うソフトウェアによって仕様が異なります。
例えば改行コードのみのいわゆる空行。これを「全カラムがデータ無しの行」と扱うものと、無視して読み飛ばすものとがあります。
ですので、空行を取り去ってしまうとデータの意味が変わってしまう実装もあるので、ExcelファイルのデータをCVSファイルに落とす場合は、出来たCSVファイルはどのように使われるのかを確認あるいは仕様決めをして掛かる必要があります。

あと、各データを""で囲う囲わないとか、改行コードはLFかCR+LFかとった話もあります。
改行コードに関してはRFC 4180ではCR+LFと決まってはいますが、LFだけの実装も少なくないのが実情です。パソコン・・・特にWindowsパソコンだとCR+LFで決まりですが、それ以外の環境ではLFだけが普通だったりとか。

加えて区切り子が「,」ではなく「;」の実装もあり。。。(^^;

とまあいろいろ方言があるCSV形式ですが、フォントサイズとか、下線とか、文字色とかが一切無い文字コードだけで出来ているというところがメーカー独自の文書アプリに依存しないデータ保存形式という意味で重要なものとなっています。

参考まで。
    • good
    • 0

初心者なら、全部手作業で行いましょう。


横着したいのであれば、それなりに学んで初心者を脱してからです。

(´・ω・`) ゴメンね。
まずは基本操作を完全にマスターして、マクロにするまでもないってくらいになりましょう。
基本操作をマスターすれば数回の操作でできるような事ですからね。

・・・

空白行の削除はフィルターを使えば一括処理できる
    • good
    • 1

こんにちは



1行ずつ判断しながら順に出力すれば可能です。
でも、エクセルならシートのCSV出力機能を利用したほうが簡単ですね。

以下の手順で可能と思います。
 1)出力したいシートをコピー
 2)コピーシートの空白行を削除
 3)コピーシートをCSV出力
 4)コピーシートを削除

>どのようにコードを書いたらいいでしょうか?
構文がわからなければ、マクロの記録をとってみれば大体わかると思います。
    • good
    • 0

空白行を削除せずに保存するマクロは書けてるのなら、そのソースコードを提示して下さい。

    • good
    • 1

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

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


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