• 締切済み

1番下を黄色に塗るマクロ

ある行の、途中に空白を含む1番下のセルを黄色く塗りたいのですが、うまくいきません。 どうすれば良いでしょうか。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1のご回答で尽きているが、 (1)EndとxlDown または EndとxlUp (2)UsedRange (3)CurrentRegion などを勉強のこと。 それぞれ特徴があって、使い分けないとダメだが。 「途中に空白(セル、行、列)を含む」が、使い分けの要素になる。 ーー こんなところへ質問する前に、上記の語句でGoogleなどで照会するか 「vba 最下行 選択」で照会して、出てくる記事を読めばわかる。 まず、そんなこともしてないで、VBAを使おうとするのは無理だ。 範囲選択の方法と付随したセル・行・列の選択は、エクセルVBAの基本の「キ」でしょう。 ーー 参考に <途中に空白がない場合> (2)だと Sub test01() Worksheets("Sheet1").UsedRange.Select MsgBox Selection(Selection.Count).Row End Sub でも、質問で言っている意図と、正しい場合がある。正しくない時は、離れ小島的なセルの使用があって、意図的なものかどうかチェックしたほうが良い。 印刷などの場合無駄なものが印刷されるかも。 ーー 範囲の右下セルの取得について Sub test02() Set Rng = Worksheets("Sheet1").UsedRange Set FirstCell = Rng(1) Set LastCell = Rng.Cells.SpecialCells(xlCellTypeLastCell) MsgBox LastCell MsgBox LastCell.Row End Sub のようなのもある。

  • kon555
  • ベストアンサー率52% (1755/3371)
回答No.1

非常にシンプル Sub tes() Cells(Rows.Count, 1).End(xlUp).Interior.ColorIndex = 6 End Sub で出来ます。対象はA列にしたので、変えたい時は適当に弄って下さい。 一応説明しておくと、「途中に空白を含む1番下のセル」つまり最下行のセルを探す場合、ワークシートの最大行からEndモードで上に飛ぶのが一番早いわけです。 それを、コードの「Cells(Rows.Count, 1)」でシートの最下行を指定し、「End(xlUp)」で上に飛ぶ形で再現します。 後は「Interior.ColorIndex」で色を指定して完了です。 色塗りはともかく、データ上の最下行を探すのはよくある事なので、覚えておくと便利ですよ。

関連するQ&A

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • データ変換マクロ

    数値データのシートがあります。 A列に空白があった場合、その行のEとFのセルをコピーして1行上のEとFのセルにコピーしたいというマクロを作成しています。 全部で100行ほどのデータに、いくつか空白セルがあって規則性はありません。空白セルのある行はすべてが対象となります。 空白を見つけた後、「その行のEとFのセル」という指定の仕方で詰まってしまいました。 良い方法をおしえてください。

  • ExcelVBA 赤字のセルを黄色で塗りつぶす

    Excel VBA初心者です。 赤いフォントの数字と黒いフォントの数字を使って表を作ります。(空白のセルも有) 列(C~Y) 行(5~1000) 赤いフォントで数字を入力したら、自動的にセルが黄色で塗りつぶされるようにしたいのですが どうしたらいいでしょうか?回答よろしくお願いします。  

  • Excel行番号指定で黄色セルの個数合計

    行番号を何処かのセルに入れて指定をし、 空白を含めた(D:W)の値の内、 黄色に染まってる物の合計個数を行番号下のセルに入れたいです。 どのようにすればよろしいですか。

  • マクロでの色の塗りつぶしについて

    A1のセルに○、A2のセルには○、A3のセルには×・・・といった行があるとします。 その中から○のセルを探し、その○のD列(A1が○ならD1)を色で塗りつぶしたい時 どのようなマクロにすればよいか教えてください。

  • エクセルのマクロ(VBA)について質問です。

    前回もお世話になりました。今回もまた、VBAの質問です。 ある表があります。 A「No.」B「氏名」C「フリガナ」(D「順番」)という項目があります。 項目名はそれぞれ2行目にあります。 データ入力は3行目からで(セルA3)、入力範囲は32行分です。 毎回32名分すべてにデータが入っていればやりやすいのですが、 31名以下の場合に問題があります。 フリガナ順に並べ替える時に、「データ」→「並べ替え」で「フリガナ」項目を 昇順で並べ替えていますが、この時、セルA3からセルC34までを 範囲指定して上記方法で並べ替えると、入力されていない空白の行までも 並べ替えられてしまい、その空白行が先頭から並べ替えられてしまいます。 そういったわけで、現状ではセルA3から入力されている一番下の データのC列(25名分登録ならセルC27)までを手動で範囲指定し 上記並べ替えを行なっています。 空白行を除いて、入力したデータ分だけ並べ替えたいのですが、 まったくわかりません。 これを何とかVBAで解決したく、質問をさせて頂きます。 お知恵を頂きたく思いますので宜しくお願い致します。 情報が不足でしたら、補足要求をお待ちします。

  • エクセル マクロ VBA

    エクセルのマクロについて質問です。 『集計』というブックの『集計開始』というシートに     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 コメント  空白     空白   3行目 空白   空白     空白 4行目 商品名  支店     個数  5行目 空白   空白     空白 6行目 空白   空白   コメント1 7行目 空白   空白     空白 8行目 空白   空白   コメント2 9行目以降    上記のデータ(見出しを除く)の繰り返し というデータが入っています。 B列の中に『AAA』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 C列の中に『B』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 (今は、手作業で編集→置換→検索する文字列の中に『B*』と入力し、 置換後の文字列を空白にしてすべて置換ということをやっています。)                            ABC列(データーの入っている行まで)の空白を含む行を一括削除し、 以下のような形にしたいのです。     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 商品名  支店     個数  3行目 商品名  支店     個数          ・         ・ このようにするマクロ文はどのようになりますでしょうか?

  • 塗りつぶしで色付けしたセルの1行を同じ色にしたい

    いつも、いつもお世話になりありがとうございます。 下図のC列(C4~C34)に「セルの塗りつぶし」で色を付けた(3~5色ほど予定)セルと同じ色で 1行(D列~AG列)を塗りつぶす方法はないでしょうか? しかも、条件付き書式で設定したセルは下図の4行目のように、その書式の色を そのまま残したいのです。 途中、空白のセルも有ります。 条件付き書式の設定を使って「数式を・・・」「文字」「値」などを利用する方法は 検索して出てくるのですが、C列は任意で言葉を入れ、「セルの塗りつぶし」で着色します。 ですから、条件は 1.C列のセルの色を読み取り、その右側の1行(D列~AG列)を同じ色にする。 2.条件付き書式で設定したセルは、その書式の色をそのまま残す。 3.途中、値も関数式も文字も何もない空白のセルもある。 そんな都合の良い方法は有りますでしょうか? もし有りましたら、どうかご教授いただけないでしょうか? よろしく、お願い致します。

  • 一番下がどこかを確認する関数を知りたいのですが・・・

    タイトルではチョッとわかりにくいかと思いますが。。。 以下に簡単な例を記しておきますので、どなたかご教示おねがいします^^;       A列   B列   C列   D列 1行目 2行目    ○    3行目 4行目    ○        ○ 100行目       ○ 200行目                 ○ こういうようなシートがあったとします。 別シートの式で自動で○が入力される表なわけですが これらは、○があるセルもあれば、空白のセルもあります。 上のシートを例にすると、A列の一番下の○は4行目、B列は100行目、C列は4行目、D列は200行目、となっております。 一番下までの○が何行目になるのか。ということを知りたいのです。 もちろん自分で数えれば簡単にわかる結果ですが、これを自動で表示するような関数があればと思い、質問させていただきました。 私の知る関数の知識、また応用力ではお手上げ状態です、どなたかご存知の方、よろしくお願いします^^;

  • 「新しいマクロの記録」機能を使っての行挿入

    「新しいマクロの記録」機能を使って1行と2行の間に10行の空白行を挿入後、A13のセルを選択というマクロを作りました(マクロ1とします)。このマクロを実行すると1行と2行の間に10行の空白行が挿入された後、A13が選択されます。ここでもう一度、マクロ1を実行すると1行と12行の間にさらに空白行が10行挿入されA13が選択されます。このようになるのは当たり前と言えば当たり前なのですが、2回目にマクロを実行したときに12行と13行の間に10行の空白行が挿入された後、A24が選択されるようにするには、どのようにマクロを記録すればよいのでしょうか?  ようは、10行の空白行を挿入した後、セルを11行下に移動させるというマクロを作りたいのです。VBAの記述方法はほとんど分からないので「新しいマクロの記録」機能を使うことを前提にご教授ください。

専門家に質問してみよう