• ベストアンサー

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

ham_kamoの回答

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

一応、作ってみました。その前のマクロの処理の続きに動かすのか、それとは別のタイミングで処理するのかわからなかったので、単独のプロシージャとしています。 もしその前のマクロの中の処理に組み込みたいときは、最後に Call 水色の網掛け を追加すればいいです。(プロシージャ名は適当なので変更可能です。実際の業務にあわせて処理内容がわかる名前にすることをお勧めします) Sub 水色の網掛け()  Dim Title As Variant, T As Variant  Dim R As Range    '検索するタイトル行の配列を作成  Title = Array("品目テキスト", "明細")    'Titleの全ての要素Tについての処理を繰り返す  For Each T In Title   'タイトル行(2行目)から特定のタイトルを検索(完全一致)   Set R = Rows(2).Find(What:=T, LookAt:=xlWhole)   If R Is Nothing Then    'タイトルが見つからない場合、エラー画面を出す。    MsgBox ("タイトル行に「" & T & "」がありません")   Else    '見つかったタイトルセルから最後の行までに網掛け設定    With R.Resize(Cells(Rows.Count, R.Column).End(xlUp).Row - 1).Interior     .ColorIndex = 34 '薄い水色     .Pattern = xlDown '右下がり斜線 縞    End With   End If  Next End Sub

mipomipo
質問者

お礼

お礼と締め切りが遅くなり申し訳ありませんm(_ _)m わかりやすい回答だったので、大変勉強になり助かりました!! また、教えていただけたら・・・・と思いました。 ありがとうございました。

mipomipo
質問者

補足

たびたびすみません!! 別件ですが、今これおわかりますか?! ↓ http://oshiete1.goo.ne.jp/qa2953056.html 今すぐしりたいのですが・・・ ルールにそらず申し訳ありませんが!! 今どうしても急な回答がほしくて・・・ よろしくお願いいたします!!

関連する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どちらでもかまいません。 (ちなみに、どちらに関しても初心者です。)  有識者の皆さま、なにとぞご教授いただきますよう、よろしくお願いいたします。