[VBA] 条件を満たすセルに色を塗ります

条件をみたすセルに色を塗ります(赤、青、黄色で塗り分けましょ~)

 実用面では ある条件をみたすセルにだけ色を塗りたいな というケースが多いですよね。そこで、まず次のようなシートを用意してくださいな。

 VBA色の塗り分けワークシート

 セルB2 から D4 の範囲で「赤」という文字が入力されているセルは赤色、「青」という文字が入力されているセルは青色、何も入力されていないセルは黄色で塗ることにします。こういう場合は For...Each...Nextステートメントを使うと便利です。

 Const myRed As Integer = 3
 Const myBlue As Integer = 5
 Const myYellow As Integer = 6

 '色の塗り分け

 Sub RedBlueYellow()

 Dim myrange As Range

 For Each myrange In ActiveSheet.Range("B2:D4")

 If myrange.Value = "赤" Then

  myrange.Interior.ColorIndex = myRed

 ElseIf myrange.Value = "青" Then

  myrange.Interior.ColorIndex = myBlue

 Else

  myrange.Interior.ColorIndex = myYellow

 End If

 Next

 End Sub

 このマクロを実行してみると ......

 VBA色の塗り分け完了

 ちゃんと塗り分けられましたね~。
 コードについて簡単に説明しておきます。冒頭の

 Const myRed As Integer = 3
 Const myBlue As Integer = 5
 Const myYellow As Integer = 6

では赤、青、黄色に対応する番号をユーザー定義定数として設定してあります。それから

 Dim myrange As Range

で myrange をオブジェクト型変数として宣言し、

 For Each myrange In ActiveSheet.Range("B2:D4")

という記述でセルB2 から D4 までの範囲のセルを順次この myrange に入れながら、以降の記述にある IF...Thenステートメントで「赤」という文字が入力されているセルは赤色に、「青」という文字が入力されているセルは青色に ...... という処理を行っています。

 オブジェクト型変数を上手く使いこなせるようになると色々なことができるようになりますよ~。それではまた次回お会いしましょ~。 ≫ VBA の技術

スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)