
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
空白セルと行に色をつけるVBA Excel2010
その他(Microsoft Office)
-
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
-
4
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
5
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
6
VBA 条件付き書式で空欄は適用除外したい
Visual Basic(VBA)
-
7
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
8
最初の1回のみにボタンクリックでマクロ実行する
Visual Basic(VBA)
-
9
データが入力されている隣のセルに当日日付と時刻を入力するExcel VBAプログラム
Visual Basic(VBA)
-
10
【VBA】【マクロ】 指定の条件で、空白の行を挿入
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
結合されたセルをプルダウンの...
-
Excel VBA アクティブセルから...
-
エクセルVBAのEntireRow.Hidden...
-
excel セルの結合を条件付で自...
-
エクセルVBA 最終行を選んで並...
-
Excelのフィルター後の一番上の...
-
完全一致したら代入するマクロ...
-
【Excel関数】UNIQUE関数で"0"...
-
(VBAにて)列のセルの結合について
-
Excelで、セルの幅をすべ...
-
エクセルのセルに指定画像(.jpg...
-
エクセル2016で時間を入力して...
-
セルではなく行や列、シート全...
-
Excel グラフのプロットからデ...
-
Excel ウインドウ枠の固定をす...
-
エクセル 時間の表示形式AM/PM...
-
Excel2007で、指定範囲の行高さ...
-
”アクティブセル行」の一行下を...
-
エクセル 上下で列幅を変えるには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで特定の文字列が入っ...
-
Excelのフィルター後の一番上の...
-
エクセル 上下で列幅を変えるには
-
エクセル マクロ オートフィ...
-
エクセル マクロで数値が変っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
EXCELで最後の行を固定
-
Excel ウインドウ枠の固定をす...
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
連続データが入った行の一番右...
-
エクセル2016で時間を入力して...
-
チェックボックスをクリックし...
おすすめ情報