• ベストアンサー

【マクロ】データが1つもない行を削除する

chie65535の回答

  • chie65535
  • ベストアンサー率44% (8553/19436)
回答No.1

’アクティブなシートの空行を削除する 'Stに開始行の行番号、Edに終了行の行番号を指定 Public Sub DELETE_NULL_LINE(ByVal St As Integer, ByVal Ed As Integer) 'lは今見ている行 Dim l As Integer 'cは表の右端の列番号 Dim c As Integer 'lを開始行にセット l = St 'lがEdになるまで繰り返す Do 'lの行の右端を取得 c = Cells(l, Columns.Count).End(xlToLeft).Column '右端がA列で、その右端のセルが空セルなら If c = 1 And IsEmpty(Cells(l, 1)) Then 'lの行を削除 Range(l & ":" & l).Delete '1行減ったのでEdを1減らす。行が下から詰まるのでlは足さない Ed = Ed - 1 Else 'lの行が空でなければ、lに1を足して、次の行を見に行く l = l + 1 End If '処理した結果、lがEdより小さいなら、まだ終わってないので繰り返す Loop While Ed > l End Sub

tanpopopoketto5
質問者

補足

回答してくださったように貼り付けてみたのですが、エラーになりました。 最初にSubを入れて、あとは回答者様の作ってくださったものを貼り付けてみたのですが... マクロは初心者ですので本当にわかりません。 どうしたらエラーが起きずに表内の空白の行を削除できますでしょうか? 説明も稚拙で大変恐縮ですが、よろしくお願いいたします。

関連するQ&A

  • 【マクロ】特定の位置から奇数の行を削除する方法

    9列目から、奇数の列を削除するマクロの式がわかりません。 説明では分かりにくいので画像を添付しております。 ☆1項目2列使っている表を1項目1列にしたい。 (1)グラフの二行目をすべて削除し、上詰めしたいです。 ※9,11,13~と削除していきたい。 (2)このシートの表の終わりは15列目になっていますが、他のシートは25列で終わりだったりとばらばらです。(表の始まりはどのシートも同じ列、行です。) (3)列を削除した際、表の下線が消えると思います。消した線も復活させたいです。 (4)そして、すべてのシートでこのマクロの処理をしたいと考えているので、 「表が終わるまでこの処理をする」というマクロも知りたいです。 分かりにくい文章、また、複数の質問になりますが、 マクロ初心者で大変困っています。どなたか回答をお願いいたします。

  • アクティブになっている行をマクロで削除したい

    特定の文字の入っている行とそれ以下の行全部を削除したいのですが どうしたらよいでしょうか 例えば"小計"の入っている行から下の行を削除したいのですが 行の位置はいつも違っています セルの位置は検索で分かりますし行の削除はShift+スペースで消し それより下はShift+ctrl+方向キー+delで出来るのですが それだとマクロで実行するときいつも同じ行を消してしまいます どの位置にも関係なくアクティブセルの含まれている行とそれ以下の行を マクロで削除するにはどのように記述すればいいですか

  • 行コピーして、今日の日付の行に貼り付けるマクロ

    こんにちは、エクセルマクロについて、助けて頂きたく質問させていただきました。 添付しました画像のような表があり、 セルA2に「=TODAY()」が入っていて、セルB2から右は別シートのデータを参照しています。 マクロを実行すると、2行目を行コピーし、セルA3以下の日付からセルA2の日付(今日の日付)を探し出して、行貼り付けしてほしいです。 行コピーや値で貼り付けはマクロの記録を使って、詳しくない私でもなんとか作ることはできるのですが、 今日の日付を探し出して、そこに貼り付ける。というマクロは作れませんでした・・・。 お助け下さい、宜しくお願いします! ※補足します セルA2の今日の日付は便宜上入力しているだけです。無い方がマクロを組みやすいのなら、無くせます。

  • 指定した文字があった場合、その行を削除するマクロが欲しいです

    指定した文字があった場合、その行を削除するマクロが欲しいです Sheet1(Sheet1以外は対象外)のB列に XYZ という文字があった場合、その行をすべて削除する というマクロはどのように作ればいいでしょうか? お時間ある方アドバイスいただければ幸いです。

  • マクロで、0のデーターの行を削除

    下記のような表があるのです(毎月のため苦労して消してます)が、データーの合計欄(セル)が0の行を削除するマクロはどうしたらよいのですか?   A   B    C  コード  合計  内容 1 001   0    0     この行を削除 2 003   5    2・・・  この行は残す 3 004   9    4・・・  この業は残す 4 010   0    0     この行は削除

  • 【Excel365】マクロを削除するマクロ

    特定のシート(仮にAとします)に添付画像のマクロ(別のマクロを実行するマクロ)を組み込んであります。 シートAをコピーしてシートBを作成し、値コピー・行削除などいろいろ編集した後にxlsxとして保存するという作業をしています。 しかし、シートBにも画像のマクロが組み込まれたままなので、1行目を削除するとマクロ「更新」が実行されてしまいます。 シートをコピーした後、画像のマクロを削除する方法はありませんか? 各Q&Aサイトをググるといろいろ出てきますが、理解できませんでした。 もしくは、シートAとそっくりなシート(ページレイアウトや書式もそのままでデータのみ値コピー)を作成するマクロの提示でも構いません。

  • 【マクロ】表に格子をするマクロ

    添付した画像の表があります。 この表に格子をつけて、表らしい見た目にするマクロを教えていただきたいです。 また、このシートは14列で表が終わっていますが、 他のシートは20列だったりとバラバラです。 すべての表で格子をつけるマクロを実行したいと思っているので、 他のシートで実行してもエラーの起きないマクロを教えていただけたらと思います。 分かりにくい説明で大変恐縮ですが、回答のほうよろしくお願いいたします。

  • マクロで行を削除するには?

    Windows NTでExcel 2000を使っています。 あるデータベースがあって、ある条件で空白の行を3行挿入して区切りを入れ、 その2行目にデータの合計を出した表に対して行う作業なのですが この挿入した行を全て消して元の表に戻したいという場合には どうしたらよいのでしょうか。 私の思いつきですが、範囲指定した後に 「もしA1が空白の時にはその行全体を削除する。もしA2が…(以下同文)」 というマクロが書ければ可能なことだと思います。 ちなみに「データベースのコピーで合計作業をすれば」というのは こちらの都合上、無理と判断しているので これ以外でよい方法があれば教えてください。 よろしくお願いします。

  • 【Excel】空白行を削除するマクロ

    Excel2003を使用しています。 マクロについて教えてください。 あるマクロを実行してできた表に、さらにマクロを実行して 例えばD:Dで空欄があったら、その行は削除するといったマクロを 作りたいのですが、どのようにしたらいいでしょうか? マクロ初心者で参考書を片手に頑張りましたが なかなかうまくいかず。。。(*_*) よろしくお願いします!

  • マクロでの行選択

    Excelのマクロについて質問です。 例えば、A1~A5セルをセル結合したときに、3行目~5行目を行選択 しようとしたときに手動で行なうとうまく選択できるのですが、マクロ で実行するとなぜか結合されている1行目から5行目が選択されて しまいます。 具体的に以下のようなマクロを書きました。 Rows.("3:5").select 手動のみでマクロ化は無理なのでしょうか? 今のままですと、一回連結をといてセルを選択して処理を実行、その のちにセルを再び連結させるということをやらなければいけなくなって しまいます。