Excel

【Excel】VBAマクロで塗りつぶし無しにする(色番号:判定も)方法【ClearFill, RangeSelect, ColorCheck関数のコード一覧】

当サイトでは記事内に広告を含みます。

この記事では、VBAマクロで塗りつぶし無しにする(色番号:判定も)方法【ClearFill, RangeSelect, ColorCheck関数のコード一覧】について詳しく解説します。

特に、色番号を使用した塗りつぶしの有無の判定と、それに基づく操作を行います。

ポイントとしては、`ClearFill`、`RangeSelect`、`ColorCheck`関数の使用です。

初心者にも理解しやすいように変数名を少々変わった名称を使用していますが、実際にはより適切な英語表記に変更してご利用ください。

それでは、詳細について見ていきましょう!

 VBAマクロで塗りつぶし無しにする(色番号で)方法【シート1全体に適用させる】

それではまず、「シート1全体に適用させる塗りつぶし無し設定」について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub ClearFillWholeSheet()
    ' シート1を選択
    Sheets("Sheet1").Select
    ' シート全体の範囲を指定
    Dim aaaaaRangeuaaaaa As Range
    Set aaaaaRangeuaaaaa = ActiveSheet.UsedRange
    ' 塗りつぶしをクリア
    aaaaaRangeuaaaaa.Interior.ColorIndex = xlNone
End Sub

コードのAlt+F8を押し、マクロ選択画面でClearFillWholeSheet関数を実行します。

このコードは、アクティブなワークシートの使用済みの範囲全体(データありの部分)に対して塗りつぶしを解除する機能を持っています。

特に、`ColorIndex` プロパティを `xlNone` に設定することで、セルの塗りつぶしをクリアします。

 

 VBAマクロで塗りつぶし無しにする方法【B2セルからD列最終行までで範囲指定する】

続いては、「B2セルからD列最終行までの範囲指定」について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub ClearFillSelectedRange()
    ' B2からD列の最終行までの範囲を指定
    Dim aaaaaStartCelluaaaaa As Range
    Dim aaaaaEndCelluaaaaa As Range
    Dim aaaaaTargetRangeuaaaaa As Range
    Set aaaaaStartCelluaaaaa = Range("B2")
    Set aaaaaEndCelluaaaaa = Range("D" & Rows.Count).End(xlUp)
    Set aaaaaTargetRangeuaaaaa = Range(aaaaaStartCelluaaaaa, aaaaaEndCelluaaaaa)
    ' 塗りつぶしをクリア
    aaaaaTargetRangeuaaaaa.Interior.ColorIndex = xlNone
End Sub

「コードのAlt+F8を押し、マクロ選択画面でClearFillSelectedRange関数を実行します。」

このコードは、指定された範囲(この例ではB2セルからD列の最終行まで)のセルに対して塗りつぶしを解除します。

範囲の指定には、`Range` オブジェクトと `End` メソッドを使用しています。

 

VBAマクロで塗りつぶし無しかの判定をし結果を隣の列に表示にする方法【C列の色が塗りつぶし無しか判定し、D列に出力】

最後に、「C列の色が塗りつぶし無しかを判定し、結果をD列に出力する方法」について解説します。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub ColorCheckAndOutput()
    ' C列の各セルをループ
    Dim aaaaaCelluaaaaa As Range
    For Each aaaaaCelluaaaaa In Range("C1:C" & Rows.Count).End(xlUp)
        ' 塗りつぶしの有無をチェックし、結果をD列に出力
        If aaaaaCelluaaaaa.Interior.ColorIndex = xlNone Then
            aaaaaCelluaaaaa.Offset(0, 1).Value = "No Fill"
        Else
            aaaaaCelluaaaaa.Offset(0, 1).Value = "Filled"
        End If
    Next aaaaaCelluaaaaa
End Sub

「コードのAlt+F8を押し、マクロ選択画面でColorCheckAndOutput関数を実行します。」

このコードは、C列の各セルについて塗りつぶしがあるかどうかを判定し、その結果を隣のD列に出力します。`ColorIndex` プロパティを使用して塗りつぶしの有無をチェックしています。

 

まとめ VBAマクロで塗りつぶし無しにする(判定も)方法【ClearFill, RangeSelect, ColorCheck関数のコード一覧】

この記事では、VBAマクロで塗りつぶし無しにする(色番号:判定も)方法【ClearFill, RangeSelect, ColorCheck関数のコード一覧】について確認しました。

塗りつぶしなしにするマクロは頻出のためこの機会に覚えておきましょう!