• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Excel VBA】一定数以上の空白行を削除する)

【Excel VBA】一定数以上の空白行を削除する

このQ&Aのポイント
  • Excel VBAを使用して、特定の条件に基づいて一定数以上の空白行を削除する方法について教えてください。お手数ですが、具体的な書き方のヒントだけでも教示していただければ幸いです。
  • 見積用のVBAを作成している際に、20行以上の空白行が生成された場合、該当行を削除してシートを整える方法を知りたいです。具体的なVBAの書き方のヒントを教えてください。
  • Excel VBAを使用して、一定数以上の空白行を削除する方法について教えてください。20行以上の空白行が発生した場合、該当行を削除してシートを整える方法を知りたいです。具体的なVBAの書き方のヒントをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>20行空白ができた場合に該当行を削除 ホントにそれでよいのなら,こんな具合でしょうか。 簡易版:「空白行」であるか否か,たとえば項目列のA列の記入の有無で判定できる sub macro1()  dim h as range  dim lastRow as long  lastrow = range("A65536").end(xlup).row  on error resume next  for each h in range("A1:A" & lastrow).specialcells(xlcelltypeblanks).areas   if h.rows.count >19 then    h.entirerow.delete shift:=xlshiftup   end if  next end sub ついでに:「空白行」であるか否か,全列をくまなく調べたい sub macro2()  dim h as range  dim i as long  for i = 1 to 8   range("A:H").autofilter field:=i, criteria1:="="  next i  on error resume next  for each h in activesheet.autofilter.range.specialcells(xlcelltypevisible).areas   if h.rows.count > 19 then    h.entirerow.delete shift:=xlshiftup   end if  next  activesheet.autofiltermode = false end sub #余談 >20行空白ができた場合に該当行を削除 1ページ20行の設定で各ページの最終行に小計欄があるのに,20行の空白になるのですか? もちろん削除の判断基準だけのお話なので,修正や応用はたやすいとは思いますが。

lightsteelblue
質問者

お礼

早速のご回答、ありがとうございます! お陰様で目的を果たすことができました。 > 1ページ20行の設定で各ページの最終行に小計欄があるのに,20行の空白になるのですか? 説明がうまくなくて申し訳ないです。 小計欄は各ページにあるのではなく、各カテゴリの最後に挿入しているので、 例えば、25個の項目があるカテゴリであれば、 最初の1ページ目は、見出しが1行、次に項目が19行、 2ページ目に項目が6行、空白行が13行、小計が1行されます。 余談ですが、作成中の見積ファイルは、ボタンクリック時に 入力シートから印刷シートに入力した見積が転記される仕組みにしています。 その際、見出しフラグを設定した行間の小計を上のイメージで挿入したり、 印刷用の書式調整等をしたりしています。 ただ、小計行を挿入する処理が不完全で、項目数によって空白行が 20行発生してしまう場合があり、最初はそこを直そうとしたのですが、 出来上がった印刷シートから空白行を20行消す方が早そうだと思い、 今回の質問に至った次第でございます。 ともあれ、これで先に進めます。 ありがとうございます!