• ベストアンサー

マクロで不要な行を削除したい

tokuseの回答

  • ベストアンサー
  • tokuse
  • ベストアンサー率35% (6/17)
回答No.2

どうしても古い日付の行を削除したいところならば仕方ないですが、 「オートフィルタ」機能を使ってみるのは如何でしょうか? 表の内部にカーソル置いて、メニューから 「データ」-「オートフィルタ」-「フィルタ」 で適用されます。 印刷用には便利な機能かと思います。 どうしてもマクロで削除したいのであれば、 int(now())で今日の日付がでるので if 指定セル < int(now()) then その行を消すコード と記述すれば良いと思います。

tamisara
質問者

補足

回答ありがとうございます。 Application.ScreenUpdating = False On Error Resume Next With Columns("E:F") .SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True .SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True .SpecialCells(xlCellTypeComments).EntireRow.Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .EntireRow.Hidden = False End With Application.ScreenUpdating = True Sheets("★進捗管理全て").Select Range("A2").Select これは、空白行を削除するマクロです。 これに、答えていただいた、if 指定セル < int(now()) then その行を消すコード を加えると、どのようになるのでしょうか?

関連するQ&A

  • 指定した範囲内が空白なら行削除するマクロ

    エクセルで指定した範囲内(A列からC列まで)で何も文字が入っていなければ(空白)、行を削除する、というマクロを教えてください。 いくつか調べて、以下を試しましたが、何も動作しませんでした。 どなたかアドバイスをいただければ助かります。 よろしくお願いします。 Sub DeleteBlankRows2() Application.ScreenUpdating = False On Error Resume Next With Columns("A:C") .SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True .SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True .SpecialCells(xlCellTypeComments).EntireRow.Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .EntireRow.Hidden = False End With Application.ScreenUpdating = True End Sub

  • マクロ教えてください!コマンドボタンがどんどん大きくなっていきます・・・

    質問ですが、コマンドボタンを使ってマクロを動かしたいのですが、一回目押下すると正常に動くんですが、二回目以降コマンドボタンを押下すると、コマンドボタンの大きさ、ボタンの中の文字の大きさがどんどん大きくなっていきます。なぜですか?ちなみに自分なりにどこで大きくなるか調べたところ .SpecialCells(xlCellTypeVisible).EntireRow.Delete の後からその現象がおきます。教えてください。もっと詳しくロジック必要ならおっしゃってください。 Application.ScreenUpdating = False On Error Resume Next With Columns("F:G") '空白行F~Gの間(文字列が入っていない行)を削除 .SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True .SpecialCells(xlCellTypeComments).EntireRow.Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .EntireRow.Hidden = False End With Application.ScreenUpdating = True

  • Excel2000のマクロが上手くいきません

    はじめまして、よろしくお願いします。 仕事で下記のような条件のマクロを作っています。 全くの初心者ですが、 いろんなHPを見て例文を書き写したりしながらなんとか作ってみたのですが、 ですが、どうしても上手く実行されません。 お恥ずかしい話ですが、 ものすごく根本的な簡単なミスをしているだと思うのですが、 どの部分が間違っているかも正直分からなくなってきました。 ご教授いただければ幸いです。 「AAファイルのS1シートのA2~B10をBBファイルのS2シートA2~B10へコピーし、 BBのS2シートB2~B10までの中でデータの入っていない行は削除する」 マクロはBBファイルに書き込んでいます。 また、AAとBBの両方を開いて実行もしています。 Sub Workbooks("AA.xls").Worksheets("S1").Range("A2:B10").Copy _ Workbooks("BB.xls").Worksheets("S2").Range("A2") Application.ScreenUpdating = False On Error Resume Next With Columns("A2:A10") .SpecialCells(xlCellTypeConstants).EntireRow.Hidden = True .SpecialCells(xlCellTypeFormulas).EntireRow.Hidden = True .SpecialCells(xlCellTypeVisible).EntireRow.Delete .EntireRow.Hidden = False End With Application.ScreenUpdating = True End Sub お手数おかけいたしますが、よろしくお願いいたします。

  • excel マクロ ○○集計 の下に空白行を2行入れる

    Win XP Office2000 マクロ初心者です。 エクセル集計機能を使って作った表の太字で表示される○○集計の 行の下に空白行を2行挿入したいのです。 普通に行の挿入をすると○○集計の上に入ってしまいます。 Sub 行の挿入() Selection.SpecialCells(xlCellTypeFormulas,).Select Selection.EntireRow.Insert End Sub このマクロに何かを加えるとできると思うのですが、よろしくお願いします

  • エクセルのマクロで行選択

    現在、エクセルでマクロを組んでいます。 行いたい内容としては 1.行6~1765までを選択 2. 1.で選択した行を非表示 3. 行6~"セルH2の値"までをを選択 4. 3.で選択した行を再表示 3の段階で失敗してしまいます。 Rangeメソッドに失敗しました、と出ます ソースは以下のとおりです ----- Private Sub CommandButton2_Click() Dim x As Integer Range("6:1765").EntireRow.Select Selection.EntireRow.Hidden = True x = Range("H2").Value Range("6:x").EntireRow.Select Selection.EntireRow.Hidden = False End Sub ---- 解決法がわかる方、教えてください よろしくお願いします。

  • EXCEL VBAで行・列の該当データ

    出荷データ一覧のマクロを作りたいのですが、抽出の仕方で苦戦してます。 A2から下方向に商品名、B1から右方向に日付の入ったシートのA3から任意のセル(変わります)に 数値のデータが入ってます。 商品の有無により出荷日は日付通りにいかずランダムになります。 例えば、数値データセルを任意で黄色に塗りつぶしたところの数値と該当する商品名を抽出するにはどうすればいいのでしょうか。 現在は以下のようなマクロを必要数値以外を削除して実行していますが、新しいものを思案中です。 Sub 行列を非表示() Rows("2:200").Hidden = True Columns("B:AO").Hidden = True Selection.SpecialCells(xlCellTypeConstants).EntireRow.Hidden = False Selection.SpecialCells(xlCellTypeConstants).EntireColumn.Hidden = False End Sub

  • 結合されているセル行の中から1行だけを非表示にするマクロ

    結合されているセル行の中の1行だけを非表示したいと思っています。 例えばA1:A5が結合していて、B1:E5までは一切結合されていない状態で、3行目だけを非表示にしたいのですが、 Rows("3:3").Select Selection.EntireRow.Hidden = True とすると、1~5行目まで全てが非表示になります。 マクロを自動記録すると Rows("3:3").Select Range("B3").Activate Selection.EntireRow.Hidden = True となるのですが、この通りにコーディングしても、やはり1~5行目が非表示になります。 1行だけを非表示にしたい場合は、どのように記述すれば良いのでしょうか? よろしくお願いします。

  • 指定した範囲で0の行を削除するマクロ

    以下のコードで7列目が0の行を削除するマクロを作ったのですが、 13行目以降を削除するように指定できますでしょうか? 1-12行は別のシートに数式を入れているため、削除したくないのですが、 うまくいきません。よろしくお願いいたします。 Sub 行削除() Dim Rw As Long Dim Cnt As Long Application.ScreenUpdating = False For Rw = Cells(Rows.Count, 7).End(xlUp).Row To 1 Step -1 With Cells(Rw, 7) If .Value = 0 Then .EntireRow.Delete Cnt = Cnt + 1 End If End With Next If Cnt = 0 Then MsgBox "削除対象行は、見つかりません。", vbExclamation Else MsgBox Cnt & " 件見つかり行を削除しました。", vbInformation End If End Sub

  • Excelのマクロについて教えてください。

    Excelのマクロについて教えてください。 下記のマクロがあります。 With Range("A" & Rows.Count).End(xlUp) .EntireRow.Copy .Offset(1) .Offset(1).EntireRow.SpecialCells(xlCellTypeConstants).ClearContents .Offset(1).Value = .Value + 1 End With 実際にデータが入っているのはA列~E列までで .EntireRow(行全体)ではなく A?:E? と範囲を指定して上記を実行させたいのですが どのように変更するといいでしょうか。 よろしくお願いします。

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

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