
Excel VBAで空白行があるセル範囲に色を付けるにはRangeとCellsを使用して記述すればできるでしょうか?
空白行がある表に色を付けるのに、下記のように記述すると、①のように設定されるのですが、
列、行のセル範囲に対して挿入や削除を行い実行すると②のように設定されてしまいます。
Sub test()
Range("B2", ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Interior.Color = RGB(204, 255, 255)
Selection.Range(Cells(1, 1), Cells(1, 3)).Interior.Color = RGB(204, 255, 153)
End Sub
列、行のセル範囲に対して挿入や削除を行っても、データがある範囲だけ処理対象にすることはできるでしょうか?
教えていただけたら幸いです。
宜しくお願い致します。

A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは
>Excel VBAで空白行があるセル範囲に色を付けるには
>RangeとCellsを使用して記述すればできるでしょうか?
可能ですけれど、VBAなど使わなくても、エクセルの基本機能で実現できます。
なさりたいことがはっきりとはわかりませんが、以下と勝手に解釈しました。
『B:D列の表内で、1行(3セル)とも空白なら、その行に色を付けたい。』
例えば、ご提示の図の上の表でB3:D11を選択し、B3セルがアクティブな状態で、
1)「条件付き書式」-「新しいルール」-「数式を使用して~」を選択
2)下部の数式欄に
=COUNTBLANK($B3:$D3)=3
を入力して、書式(=色)を設定。
としておけば、いちいちマクロを実行したりしなくても、自動で書式(=色)が反映されます。
※ もしも、『一つでも空白セルがあれば~~』という条件の場合は、式を
=COUNTBLANK($B3:$D3)
としておけば、そのようになります。
※ ただし、最終行の下に行を追加挿入しても、書式等はコピーされませんのでご注意。
No.2
- 回答日時:
ええと。
ActiveCell.SpecialCells(xlLastCell)
がそもそもの原因ですね。
範囲の右下セルを明示的に記述するようにしましょう。
やりかたはいろいろありますので、そこは自身で考え工夫してみてください。
原因が分からず質問をしているのでしょうから、質問者さんなら余裕でできると思います。
No.1
- 回答日時:
こんにちは
ActiveCell.SpecialCells(xlLastCell) は
使用されている最終セルを示すものだったと記憶しています
もし、D列最終行に値が入っている事が確定的ならば
Range("B2", Cells(Rows.Count, "D").End(xlUp)).Select
にすれば良いと思います
D列が確定しないのであれば、範囲として取得できるもので
(例えば罫線が引かれた範囲とか・・)で選択可能です
ちなみに罫線の範囲取得は独自にファンクションなどを作成する必要があると思います(メソッドは無かったかと)
ちなみに .Selectを使わないでも処理コードを書けますが、後に
Selection.Rangeを使用していますので判り難くなるかもしれないので
添削コードは割愛します
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAについて教えてください 4 2022/11/10 12:44
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
このQ&Aを見た人はこんなQ&Aも見ています
-
空白セルと行に色をつけるVBA Excel2010
その他(Microsoft Office)
-
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
-
4
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
5
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
6
最初の1回のみにボタンクリックでマクロ実行する
Visual Basic(VBA)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
【Excel VBA】複数ある特定の文字列を含む行を削除
Excel(エクセル)
-
9
マクロで最終行を取得してコピーしたい
Visual Basic(VBA)
-
10
B列の最終行までA列をオートフィル
Visual Basic(VBA)
-
11
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
Excelのフィルター後の一番上の...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
Excel ウインドウ枠の固定をす...
-
Excel グラフのプロットからデ...
-
罫線の斜線を自動で引くマクロ
-
excel セルの結合を条件付で自...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルのセルに指定画像(.jpg...
-
EXCELマクロを使い、空白行では...
-
A1に入力された文字列と同じ文...
-
結合されたセルをプルダウンの...
-
エクセルVBAで、INSERT文を生成
-
エクセル マクロ オートフィ...
-
エクセルVBA 最終行を選んで並...
-
エクセルで、自動的に並べ替え...
-
EXCELで最後の行を固定
-
連続データが入った行の一番右...
-
Excelにて、'C43C410' のように...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
エクセルで特定の文字列が入っ...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
excel 小さすぎて見えないセル...
-
エクセル マクロ オートフィ...
-
Excel グラフのプロットからデ...
-
Excelのフィルター後の一番上の...
-
結合されたセルをプルダウンの...
-
EXCELで最後の行を固定
-
excelのデータで色つき行の抽出...
-
アクティブになっている行をマ...
-
連続データが入った行の一番右...
-
Excel ウインドウ枠の固定をす...
-
エクセルのセルに指定画像(.jpg...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
Excelでカタカナ・ひらがな・英...
おすすめ情報