• ベストアンサー

エクセル 網掛けしてあるセルの行を残してそれ以外の行を削除するVBA

ham_kamoの回答

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 Sub 網掛けのない行を削除()  Dim i As Integer  For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1   If Cells(i, "G").Interior.Pattern = xlNone Then    Rows(i).Delete   End If  Next End Sub その画面でF5キーを押すか、Alt+F11でExcelの画面に戻ってAlt+F8からマクロを実行してみてください。 エラーが出たり、希望の動作と違ったら補足をお願いします。なお、マクロは実行したら元に戻せないので、ファイルのバックアップをとっておいた方がよいでしょう。

mipomipo
質問者

補足

大変わかりやすい回答で、一発で出来てしまいました!!! ありがとうございました!!!!! VBAに詳しい方だと察します。 お願いついでにもう少しマクロを教えてください。 上記のマクロを走らせてから、 ⇒「列1」に1行挿入させて、 ⇒セル「G1」に、マクロを走らせた日から2週間後の日付が出てくるようにして、 ⇒セル「H1」に、『←次回進捗日』という言葉をいれて、 ⇒セル「I1」に、網掛けされたセルの個数を表示させたい。  但し、網掛けされたセルの数え始めは、3行目から数えること。  なぜかというと、1行目は、空欄になっており、前述したことが書かれてあるはずだから。2行目は「各項目の名称」が入っているので。 ⇒そして、セル「L1」に『/』という記号をいれて、 ⇒セル「N1」に罫線(外枠)をつけて、 ⇒セル「Q1」に『←未引当』という言葉をいれたい。 補足欄で、このボリュームの質問はどうかとも思いますが、VBAを大変熟知してされている方と察し、もし、お答え頂けるようでしたらお願いしたいと思います。 本当に厚かましくて申し訳ありませんが、何卒宜しくお願い致します。

関連するQ&A

  • エクセルで、セルに「合格」という文字が入ったら、そのセルの入った行全体に灰色の網掛けがかかるようにできますでしょうか?

    ほぼタイトル通りなのですけれど、 エクセル(97)であるセルに「合格」という 文字列が入りましたら、そのセルの入った 行全体(表の中の事なので表の中のみ)に灰色の 網掛けがかかるようにできますでしょうか? 「条件書式」を使いますと、一つのセルに「合格」と 入りますと、そのセルのみに網掛けがかかってしまうようですし、行全体に網掛けがかかる方法を探しています。。 何か機能を組み合わせていい方法はないでしょうか?

  • エクセルの使い方-最低値のセルに自動網掛け

    エクセルを使っています。1つの行にある複数セルの数値から、最低値を見つけ、そのセルに色網掛けをしたいのです。これを自動で行えるようにしたいのですが、方法など知っておられるかたがいらっしゃれば教えてください。マクロとか、プログラムとかする必要ありますか。。。どんな方法でもよいので、よろしくお願いいたします。

  • エクセルで網掛けの入ったセルを並び替え(昇順・降順)するには

    エクセル97で、例えば、C列に「黄色」の網掛けが 入ったセルがあったとしたら、黄色のセルが入った行を、 上に持ってきたり、下にもってきたり、と並びかえる 方法を探してるのですが、解決手段はありますでしょうか?

  • エクセルで複数行のデータを1行にする方法

    エクセルで複数行のデータを列挿入--切り取り--貼り付けで1行にしたいのですが、 その様なセルの並びが沢山あります。 VBAマクロなどで一度に出来る方法が有りましたらどうか教えて下さい。 データはこんな感じです。 ┌─┬─┬─┬─┬─┐ │01│04│07│10│13│ ├─┼─┼─┼─┼─┤ │02│05│08│11│14│ ├─┼─┼─┼─┼─┤ │03│06│09│12│15│ ├─┼─┼─┼─┼─┤ │16│19│22│25│28│ ├─┼─┼─┼─┼─┤ │17│20│23│26│29│ ├─┼─┼─┼─┼─┤ │18│21│24│27│30│ ├─┼─┼─┼─┼─┤ この様に並び替えたいのです。 ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ │01│02│03│04│05│06│07│08│09│10│11│12│13│14│15│ ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ │16│17│18│19│20│21│22│23│24│25│26│27│28│29│30│ ├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤ 何卒宜しくお願いいたします。

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • Excel で位置が変動するセルの指定をVBAで作りたいのですが・・・?

     ExcelのVBAはほとんど初心者なのです。  申し訳ございませんが教えていただきたいのです。  ひとつのシートに表が3種類あるのですが、それぞれ違うデータを  貼り付けようとしています。  元の表の形は同じです。3行の表でデータの数によって行が挿入  するようになっています。  1つ目の表は、開始のセルは決まっているので指定は出来るのですが  2つ目・3つ目の表の開始セルがその時々で変わってきます。  その時の、開始セルのマクロを作成したいのですが分からなくて  教えて下さい。  よろしくお願いします。  説明が下手ですみません。    

  • VBA アクティブ行の削除

    エクセルで、アクティブにしているセルの行のA列からL列のみを削除というマクロを組みたいのですが、どのように記述したらいいのでしょうか? アクティブなセルはA列~L列のどこにあっても、その行のA列-L列を削除というようにしたいです。 (例1) A1がアクティブだった場合、A1~L1が削除される (例2) B4がアクティブだった場合、A4~L4が削除される すみませんが、お分かりになる方がいましたらよろしくお願いいたします。

  • エクセルVBAで空白セルを削除する方法

    みなさん教えてください。 今エクセルVBAで、下記のようにのA列に空白セルがある場合にそのセルを削除し、 空白セルが無い場合何もしないと言うマクロを作っています(下記のように自動記録し ました)。 しかし、作成したマクロは、下記のようにA列に空白セルがない場合はエラーが出てし まいます。 空白セルが無い場合エラーが出ない方法を教えて頂けないでしょうか。 よろしくお願いします。 <マクロ> Sub Macro1() Columns("A:A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.SpecialCells(xlCellTypeBlanks).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp End Sub <データ> A --------- 1 2 1 1 1 3 4 ・ ・ ・ (以降約300行続きます)

  • エクセルでの網かけについて

    エクセル上でひとつのセルの中に文字列を入力していて(例えば A B C D ←がひとつのセル内にある)その内のひとつの文字のみ(例で言えば C のみのように)に網かけすることは可能ですか?可能な場合、どうしたら良いのか教えていただけませんか?それと、もしできない場合は網かけではなく、その文字のみ囲むことは可能でしょうか?

  • excel 複数行の一番右の値を異なるセルに表示

    いつもお世話になっております。 Excel2003について質問です。 今、AA列を開始列として、20行程の表があります。 データはAA列からAB、ACと「日々の数値」が入力されており、 表から20行ほど離れた特定のセルに、最新日付のデータを 表示させています。 イメージ      4/1  4/2  4/3  4/4 りんご  1   25   11   12 ゴリラ  5   22   20   18 ラッパ  6   26        21 パンダ  8   29   30   26 だんご  11   28 27 28 ゴリラ  18 パンダ  26  上記イメージのように、 「特定の行の、最新データ(該当する行の、一番右側のセルデータ) のみを特定セルに表示させたい」のですが、方法が分かりません。 (入力されるデータは数値のみで、途中に空白行もいくつか存在します。)  Webなどで検索をしてみたのですが、思うような回答が得られず。。です。  解決できるのであれば、関数・VBAどちらでもかまいません。 (ちなみに、どちらに関しても初心者です。)  有識者の皆さま、なにとぞご教授いただきますよう、よろしくお願いいたします。