こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル VBAで入力

 エクセル初心者です。

条件付き書式で一つのセルに特定の文字列を入力した際に、そのセルと任意の法則性のある複数のセルに(入力内容は無関係でセルの行・列に法則性があります)特定の塗りつぶしを行いたいのですが、どのようにすればよいのでしょうか。

条件付き書式をすべて設定する(手打ち)するのが最も確実で間違いの内方法ではありますが、新規に行・列を挿入した場合、その行・列には条件付き書式が設定されていませんので、意図した作用を起こさなくなってしまいます。

上記ではよくわからないと思いますので、具体的な例を入れさせていただきます。

例))

任意のセル(A13)に特定の文字列(OK)と入力する。
特定文字列に反応して、そのセルの列に(A12からE12、F12からH12)赤色の塗りつぶしを入れる。

上記は1セルに対して行われますが、VBAを使用してA12からA5000までを検索対象として持たせて、それぞれのセルの列に対して塗りつぶしを入れられるようにしたいと思っています。

投稿日時 - 2012-07-30 19:17:23

QNo.7618716

すぐに回答ほしいです

質問者が選んだベストアンサー

マクロを使わなくとも次のようにしてはどうでしょう。
B12セルからH5000セルまでを範囲として選択します。
「ホーム」タブの「条件付き書式」を選択し、「新しいルール」を選択します。
「数式を使用して・・・・・」にチェックをしてから下の窓には次の式を入力します。
=$A12="OK"
「書式」から「塗りつぶし」のタブで望みの色を設定して終了します。

投稿日時 - 2012-07-30 20:45:15

お礼

回答ありがとうございます。
そ、そんなに簡単な方法でできるとは……

本当に助かりました

投稿日時 - 2012-08-01 11:41:58

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

こんにちは!
>任意のセル(A13)に特定の文字列(OK)と入力する。
>特定文字列に反応して、そのセルの列に(A12からE12、F12からH12)赤色の塗りつぶしを入れる
とありますが、(A12)に特定文字列(OK)のように、同行での操作だと判断しています。

それと
>新規に行・列を挿入した場合・・・
とありますので、列を挿入・削除した場合でも
A列が「OK」だとA~G列まで色がつくようにしたい訳ですよね?

VBAになってしまいますが、一例です。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてA列にデータを入力してみてください。


Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim i As Long
If Intersect(Target, Range("A12:A5000")) Is Nothing Or Selection.Count <> 1 Then Exit Sub
i = Target.Row
If Target = "OK" And Target <> "" Then
Range(Cells(i, "A"), Cells(i, "G")).Interior.ColorIndex = 3
Else
Rows(i).Interior.ColorIndex = xlNone
End If
End Sub 'この行まで

※ 条件付書式がの設定がしてある場合は色の変化がありませんので、
条件付書式はすべて削除しておいてください。

参考になりますかね?m(_ _)m

投稿日時 - 2012-07-31 11:22:40

お礼

回答ありがとうございます。

試してみたのですが、どうもうまく起動しませんでした(泣)
お時間ありましたら、記載くださいましたVBAの命令を解説していただけましたら嬉しいです。

特に

Dim i As Long
Is Nothing Or Selection.Count <> 1
i = Target.Row
Range(Cells(i, "A"), Cells(i, "G")).Interior.ColorIndex = 3
Rows(i).Interior.ColorIndex = xlNone

上記四箇所に関しては初めて見る形なので、ご教授頂ければ幸いです

投稿日時 - 2012-08-01 15:41:22

あなたにオススメの質問