質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

32947閲覧

CSV形式で出力する時に空白行を削除して保存したい。

toton3310

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2018/03/15 07:12

Excelのマクロについて質問させてください。

1枚目のシートに情報を入力、その他のシート(10シート程)には式を入力して、当てはまる場合は抽出、当てはまらない場合は空白を表示させています。

すべてのシートをCSV
形式で保存するマクロを使用していますが、式が入っている空白の行もそのまま空白行として保存されてしまうので、それぞれのCSVを開いては手動で行を削除する、という手間があります。

条件:
①全てのシートをCSV形式で保存したい
②式が入っていても、空白で表示される行は削除して保存したい
③すべてが空白になるシートもエラーが出ないようにしたい(保存・未保存はどちらでも大丈夫です)

今現在使用しているマクロは情報サイトから持ってきてそのまま使用しているので、自分では作成できません。
ご存知の方はお教えいただけますと助かります!よろしくお願いします。

◆使用中のマクロ
Sub ExportFiles(frm As XlFileFormat)
' ブックが保存済みでない場合は保存
If ActiveWorkbook.Saved = False Then
If MsgBox("ブックがまだ保存されていません。保存しますか?", vbYesNo) = vbNo Then
Exit Sub
Else
ActiveWorkbook.Save
End If
End If

' 出力先フォルダを選択
Dim fd As FileDialog, fld As String
fld = ActiveWorkbook.Path
If Right(fld, 1) <> "" Then
fld = fld & ""
End If
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.Title = "出力先フォルダの選択"
fd.AllowMultiSelect = False
fd.InitialFileName = fld
If fd.Show = False Then Exit Sub
fld = fd.SelectedItems(1)
If Right(fld, 1) <> "" Then
fld = fld & ""
End If

' 書き出し
Dim ws As Worksheet, fname As String, ext As String, wbPath, f As Boolean
Application.DisplayAlerts = False
Application.ScreenUpdating = False
wbPath = ActiveWorkbook.FullName
If frm = xlCSV Then
ext = ".csv"
Else
ext = ".tsv"
End If
For Each ws In ActiveWorkbook.Worksheets
f = False
ws.Activate
fname = fld & ws.Name & ext
If Dir(fname) <> "" Then
f = (MsgBox(fname & "が存在します。上書きしますか?", vbYesNo) = vbYes)
Else
f = True
End If
If f Then
ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=frm
End If
Next
ActiveWorkbook.Close
Workbooks.Open wbPath
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "書き出しが終了しました"
End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ExcelVBAer

2018/03/15 07:49

それだけのマクロが書けるのなら、1行まるまる空白かどうかの判定くらいできるのでは?
toton3310

2018/03/15 09:38

ご意見ありがとうございます。こちらに記載しているマクロは自分で考えたものではなく、ネットで検索して出てきたものをそのまま使用しております。マクロの知識が無いなりに色々と調べてみましたが条件に合うものが見つけられなかったのでこちらで質問させて頂きました。
guest

回答1

0

ベストアンサー

今現在使用しているマクロは情報サイトから持ってきてそのまま使用しているので、自分では作成できません。

じゃあ、条件に合うものが無いか探してみましょう。

数式で0となり空白となっている特定行の消し方
とか、
Excelマクロ 空白セルを無視してCSV出力
などが参考になるのでは無いかと思います。

※teratailでは、自助努力されている状況が見受けられないと、回答はあまりされないので、
自分なりに工夫した結果で上手く行かない事を質問されると良いですよ。

投稿2018/03/16 05:06

sazi

総合スコア25184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toton3310

2018/03/20 10:12

ご回答ありがとうございます。 リンク先の方法と+αの方法で解決する事ができました! 自分でも色々と検索してみたつもりでしたが、検索の仕方が甘かったようです。 質問の仕方もよくわかっておらずご迷惑お掛けしてすみませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問