質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

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

Q&A

解決済

1回答

632閲覧

指定した条件に当てはまった場合に背景色の変更を行いたい

teratera123

総合スコア1

VBA

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

0グッド

0クリップ

投稿2021/04/15 04:21

前提・実現したいこと

指定したセル内(H5:H3000)の背景が「水色」の場合に、その下のセル背景が「紫色」で、なおかつその下も更に「紫色」が続いている場合、
1番上だけ「紫色」のままで他の「紫色」は「無色」にする というマクロを組みたいです。

今朝初めてVBAに触った初心者(他のプログラムも知らない)のためご回答を全て理解できるか不安ですが、
なんとか解決したいと思っておりますので、ご助力の程よろしくお願いいたします。


H10:水色  ⇒ H10:水色
H11:無色  ⇒ H11:無色
H12:水色  ⇒ H12:水色
H13:紫色  ⇒ H13:紫色
H14:水色  ⇒ H14:水色
H15:紫色  ⇒ H15:紫色
H16:紫色  ⇒ H16:無色 ←変更される
H17:紫色  ⇒ H17:無色 ←変更される
H18:無色  ⇒ H18:無色
H19:紫色  ⇒ H19:紫色

発生している問題・エラーメッセージ

インターネットで検索を行い、コードを組み合わせてみましたが動作せずの状況です。

該当のソースコード

Sub セルの背景色を変更() Dim MyRange As Range '範囲指定 For Each MyRange In Range("H5:H3000") 'H列に水色があれば下のセルを参照する If RGB(0, 255, 255)          ActiveCell.Offset(1, 0).Select '下のセルが紫なら更に下のセルを参照し、無色に変更する       If RGB(148, 0, 211)               ActiveCell.Offset(1, 0).Select       MyRange.Interior.Color = xlNone            End If        End If Next End Sub

補足情報(FW/ツールのバージョンなど)

Excel 2019を使用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

コードを組み合わせてみましたが動作せずの状況です。

コンパイルエラー位は解決してからにしましょうよ。

次の次のセルのようにオフセットでの相対処理になっていますが、
次の次のセルの色を変えたら、そのセルに到達した時に条件が変わってしまいますよね。

なので、編集するかどうかの条件を記録するようにして処理します。

VBA

1 Dim ModifyFlg As Boolean, i As Integer 2 3 ModifyFlg = False 4 For i = 5 To 3000 5 If ModifyFlg Then 6 If Range("H" & i).Interior.Color = RGB(148, 0, 211) Then 7 Range("H" & i).Interior.Color = xlNone 8 Else 9 ModifyFlg = False 'セルが紫で無い場合はモードリセット 10 End If 11 End If 12 13 'セルが紫で前のセルが水色の場合 14 If Range("H" & i).Interior.Color = RGB(148, 0, 211) And Range("H" & i - 1).Interior.Color = RGB(0, 255, 255) Then 15 ModifyFlg = True 'モードをセット 16 End If 17 Next

投稿2021/04/15 06:29

編集2021/04/15 07:55
sazi

総合スコア25327

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

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

teratera123

2021/04/15 07:21

無事動作いたしました。迅速なご対応ありがとうございます。 コンパイルエラーの件についても次回から気を付けます!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問