🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

6721閲覧

条件付き書式によって着色されたセルを、VBAによって上書きする形で着色できるのか

mami99

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2019/12/22 16:02

編集2019/12/22 23:17

知りたいこと

条件付き書式のルールによって空白時に着色されたセルを、
VBAによって上書きする形で着色させることができるのでしょうか。

###コード/試したこと

まず、条件付き書式によって、
入力必須という意味を込めて、
A1:A3のセルが空白だった場合にピンクで着色させるルールを追加しました。

その後、下記コードを書いてみました。
A1,A2,A3のセルが空白だった場合に、
それぞれのセルの、注意メッセージ出力と赤で着色させる処理です。

※A1,A2,A3のセルは左から優先順位が高く、
A1が空白だった場合にはA2,A3の処理は行われません。

VBA/SelectCell

1 2 3Sub SelectCell() 4 Call EmptyCheck(Range("A1")) 5 Call EmptyCheck(Range("A2")) 6 Call EmptyCheck(Range("A3")) 7End Sub 8 9 10 11

VBA/EmptyCheck

1Function EmptyCheck(cell) 2 If cell = "" Then 3 Dim Address As String 4 Address = cell.Address 5 MsgBox (Address + "が空欄です") 6 7 '着色処理 8 cell.Interior.ColorIndex = 3 9 10 End 11 12 Else 13 cell.Interior.ColorIndex = 0 14 15 End If 16End Function

結果、VBAの着色処理の赤いセルが現れることはありませんでした。
これは条件付き書式のルールが、VBAよりも優先されているということなのでしょうが、
VBAの処理を優先させることは可能なのでしょうか。

ご回答お待ちしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2019/12/22 23:01

EmptyCheck のコードも提示してください。
mami99

2019/12/22 23:17

申し訳ございません。 追記しました。
guest

回答1

0

これは条件付き書式のルールが、VBAよりも優先されているということなのでしょうが、

VBAの処理を優先させることは可能なのでしょうか。

VBAでどのような設定をしているか次第です。
背景色(Interior.Color)を設定しているなら、条件付き書式が優先されますので変更されません。
VBAで条件付き書式(FormatConditions)を設定すれば変更できます。

条件付き書式で空白の背景色を変更してあるのに、さらに背景色を変更するのは何のためか、その目的?
また、変更する条件、タイミングは?
変更した後、元に戻す必要もあるが、そのタイミングと条件は?
上記の点が不明確なので、これ以上の具体的な回答は難しいです。

条件によっては、VBAで背景色を変更するなら、条件付き書式は使わずにWorksheet_ChangeイベントでInterior.Colorを設定するほうがシンプルになる場合もありそうです。

投稿2019/12/22 23:13

編集2019/12/23 00:59
hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mami99

2019/12/23 11:21

前提条件が不明確で申し訳ありません。 実装したいというよりは、 変えることができるのかなという純粋な疑問で質問させていただいたからだと思います。 条件付き書式の方が、Interior.Colorよりも優先されるということを知ることができただけでも収穫でした。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問