以下の仕様を満たすEXXLEのマクロを教えて頂けないでしょうか。


「あるO列のセルに「あ」と入力されており、かつ同じ行のR列が空白だったとき、同じ行のA~D列を黄色く塗りつぶしたい」

そして、R列に文字が入力されたら、塗り潰したA~D列を元に戻したい」

マクロについてほとんど素人ですので、コードにコメントがあると有難いです。

回答の条件
  • 1人2回まで
  • 登録:2009/03/10 22:46:45
  • 終了:2009/03/10 23:28:53

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912009/03/10 23:04:58

ポイント60pt

こんな感じのことでしょうか。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim intColor As Integer
    Dim celcolor As Integer

'// O列・R列がなければ終了
    If Intersect(Target, Range("O:O,R:R")) Is Nothing Then Exit Sub
    
    Dim r As Range
    Application.EnableEvents = False

'// 一度に複数行の変更に対応(コピー&貼付け等)
    For Each r In Intersect(Target, Range("O:O,R:R"))

'// 変更した行のO列が"あ"なら
        If Cells(r.Row, "O") = "あ" Then
        '// R列が""なら黄色
            If Cells(r.Row, "R") = "" Then
                Cells(r.Row, "A").Resize(1, 4).Interior.ColorIndex = 6
        '// R列がからでなければ白
            Else
                Cells(r.Row, "A").Resize(1, 4).Interior.ColorIndex = 0
            End If
        End If
    Next
    Application.EnableEvents = True
End Sub

多少の変更はコメントに手対応しますので、

コメントを有効にお願いします。

id:omoro

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

素晴らしいです、まさにこの動作です。

僕もちゃちゃっとマクロが組めるようになりたいものです。

2009/03/10 23:28:43
  • id:Mook
    今回のケースは条件付き書式でも可能かと思います。

    A1:D#(A1から始めて#行まで)選択し、条件付き書式で
    「数式が」で「=AND($O1="あ",$R1="")」
    「書式」の塗りつぶしで黄色
    で、同様の動作になります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません