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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
エクセルマクロで特定の範囲が空白という条件
Excel(エクセル)
-
空白セルと行に色をつけるVBA Excel2010
その他(Microsoft Office)
-
Excel VBA 空白セルがあったらメッセージボックスで知らせたい
Visual Basic(VBA)
-
-
4
E列のセルに数値が入れば(空白でなければ)B列の同じ行のセルに色がつく
その他(Microsoft Office)
-
5
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
6
【vba】指定範囲の中に任意の文字があるときの条件分岐
Excel(エクセル)
-
7
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
8
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
9
EXCELマクロを使い、空白行ではさまれた範囲の数字を合計
Excel(エクセル)
-
10
VBA 条件付き書式で空欄は適用除外したい
Visual Basic(VBA)
-
11
セルの値が0はクリアするマクロ
Excel(エクセル)
-
12
連続データが入った行の一番右端の右側の空白セル
Excel(エクセル)
-
13
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
14
VBAで転記すると元のシートの条件付き書式が消えてしまいます。
Excel(エクセル)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
マクロについて質問です 範囲内のセルが空白か調べるにはどのようなプログラムになるんでしょうか? セル
Visual Basic(VBA)
-
17
Excel VBA のdebug(F8キー) がうまく動作しません(超初心者です)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
エクセルで特定の文字列が入っ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
エクセル マクロ等を利用した各...
-
VBAで色の付いているセルの行削除
-
エクセル マクロで数値が変っ...
-
excelのデータで色つき行の抽出...
-
EXCEL 「最後のセル」のリセット
-
[EXCEL]ボタン押す→時刻が表に...
-
アクティブになっている行をマ...
-
結合されたセルをプルダウンの...
-
セルの色によって条件文をつけ...
-
Excelのフィルター後の一番上の...
-
excel 小さすぎて見えないセル...
-
【EXCEL】連続データの個数を抽...
-
エクセル 時間の表示形式AM/PM...
-
Excel グラフのプロットからデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
エクセルで特定の文字列が入っ...
-
[EXCEL]ボタン押す→時刻が表に...
-
【Excel関数】UNIQUE関数で"0"...
-
特定の文字がある行以外を削除...
-
Excel グラフのプロットからデ...
-
excelのデータで色つき行の抽出...
-
AのセルとB行を比較して、一致...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
VBAで色の付いているセルの行削除
-
excel 小さすぎて見えないセル...
-
A1に入力された文字列と同じ文...
-
罫線の斜線を自動で引くマクロ
-
アクティブになっている行をマ...
-
エクセル2016で時間を入力して...
-
EXCELマクロを使い、空白行では...
-
エクセルマクロで偶数行(又は...
-
セルの色によって条件文をつけ...
おすすめ情報