Udemyで講座を受講しよう!
Excel

Excelマクロで空白セルのある行を削除するシンプルなコード

Yujiro Sakaki

こんにちは! Excel講師の榊裕次郎です。

東京・大手町にある某ホテルの宿泊システムの調整を行いました。その中で、どうしてもワークシート操作においてマクロ処理が必要となり、こちらのマクロが大活躍したのでブログに過去ログとして残しておきます。

サンプルファイルをご覧ください。

空白セルを含むセルの行を全部削除するときのマクロです。

【VBAコード】

① Sub Sample()
②  Range(“A1:A100”).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
③ End Sub

【日本語訳】

① Sampleマクロです。
②  セルA1~A100まで空白セルがあったら、その行を削除します。
③ おしまい

ただ、もしA1~A100まで空白セルがない場合は、エラーを返してしまいます。空白セルが存在しないのですから、処理ができないよーという嘆きのエラーですね。

① Sub Sample()
②  On Error Resume Next
③  Range(“A1:A100”).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
④ End Sub

そのときは、②を加えて、エラーが起きたら次の行に進む、というコードを1行入れておくと安心です。マクロを実行すると、無事に空白セルのある行を削除することができました。

注意点として、対象となるワークシートでIFERROR関数を使っているワークシートも多いのでご紹介しておくと……。

=IFERROR(数式,””)

注目すべきところは、第2引数の「””」で空白を出力している場合です。

数式そのものが入っていれば、空白セルではないので気づきそうなものですが、そのセルを[値として貼り付け]をして数式を消したとしても、セルの中身はスペースのない空白ではありますが、ゴミのようなものが残ります。

そのため、[検索と選択]より[条件を選択してジャンプ]→空白セルを指定しても、そのセルは空白とはみなされず、この操作は無視されてしまうのです。

マクロが動かない! とドツボにハマるところなのかなと思い、こちらも記載しておきました。

Excelマクロは勉強すれば誰でも書けるようになりますが、現場のワークシートは何の操作をしているかわかりません。細かいところまで確認してから作成する、というのが大事ですね。

Advertisement

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ABOUT ME
榊 裕次郎
榊 裕次郎
Excel講師
1981年10月生まれのてんびん座、東京都出身。趣味は、旅行と料理とワイン。2024年は、佐賀県に行って「呼子のイカ」を思いっきり食べたいです。

引き続き、青森・秋田・岩手でのお仕事ご依頼、お待ちしております!
記事URLをコピーしました