こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2019-12-06 00:13:41

QNo.9686767

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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
のようなのもある。

投稿日時 - 2019-12-06 10:25:44

ANo.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」で色を指定して完了です。

色塗りはともかく、データ上の最下行を探すのはよくある事なので、覚えておくと便利ですよ。

投稿日時 - 2019-12-06 00:23:56

あなたにオススメの質問