【Excel~すぐ使えるマクロ~】文字が入力された時にセルを塗りつぶすマクロを紹介!

当ページのリンクには広告が含まれています。
目次

はじめに

実用的なExcelのマクロを初心者目線で分かり易く紹介・解説していきます!

というか、僕も初心者なんですけどね!(笑)

これを機に、定型的な仕事を自動化し、業務の効率化に役立ててもらえたら嬉しいです!

今回のテーマ

今回のテーマは「文字が入力された時にセルを塗りつぶすマクロ」を紹介します。

・セルに文字が入力されたか分かり易くしたい。

・一目で資料チェックがしたい。

・条件付書式じゃない方法で設定をしたい。

・いちいち書式を設定するのがめんどくさい。

そんな方におすすめの内容となっています。

VBAコード

「文字が入力された時にセルを塗りつぶすマクロ」を次の例を使って紹介してきます。

(例)

・不具合に内容が入力されると、特定の範囲をハイライトさせる。

・完了に文字が入力されると、ハイライトしていた範囲をグレーアウトさせる。

・印刷することを想定し、A4のフォーマットとする。

下記がこのマクロのコードになります。

コードの解説

1.changeイベントの活用

『「不具合」の内容が入力された時にマクロを実行する。』

この様なシートの情報が変化したタイミングでマクロを実行するのに便利なのが

Changeイベント」です!

Changeイベントはマクロを実行したいSheetモジュールで「general」から「worksheet」に変更し、「Change」を選択することで作成することが出来ます。

作成されたプロシージャに実行したいステートメントを作成していくことでシートのセル情報が更新されたタイミングでマクロが実行されます。

2.ループ処理「For文」の活用

今回実行するマクロは等間隔に配置されたセル範囲に対して実行します。

こんな時に便利なのがループ処理です!

今回は「For文」を使ってループ処理を行います。

For文は次のように使います。

For インデックス 初期値 To 最終値

 ステートメント

Next インデックス

3.If文で条件分岐

次の条件で結果を分岐させるためにみんな大好き「If文」を活用します。

[条件]

・「不具合」に内容が記載されている場合 ハイライト

 →「不具合」内容が空欄じゃない場合に処理を実行

・「完了」に文字が入力されている場合 グレーアウト

 →「完了」が空欄じゃない場合に処理を実行

・何もない場合 塗りつぶしなし

 →上2つの条件以外に処理を実行

この条件分岐を先ほど作成した「For文」に入れます。

4.セル範囲の指定

ループ処理でセル範囲を指定するために、セル範囲を変数で指定させます。

変数は上で使った「i」を使います。

5.セルの塗りつぶし

次にセルの塗りつぶしです。

セルの塗りつぶし方法は幾つかありますが今回はCells.Interior.Colorプロパティを使用します。

Cells.Interior.Colorプロパティで色を指定する場合はRGBになります。

Interior.Colorプロパティは次のように使います。

Cells(R,C).Interior.Color=RGB(*,*,*)
※R:列番号,C:行番号,*:0~255の数値

塗りつぶしなしにCells.Interior.Colorプロパティを使ってもいいんですが、RGBで指定すると「白」に塗りつぶしされるてしまいます。

Cells.Interior.ColorIndexプロパティを使うことで「塗りつぶしなし」にすることが出来ます!

インデックス番号はWebで検索すればすぐ出てきます。

Cells(R,C).Interior.ColorIndex=インデックス番号
※R:列番号,C:行番号
では、コードに入れてみましょう。

このコードをChangeイベント内に組み込んでマクロ完成となります。

お疲れ様でした。

実用化する為の編集ポイントを紹介!

今回紹介したマクロで編集するポイントを簡単に紹介していきます。

実行するセルを変更したい

実行したいセルの範囲を変更する場合は、Cellsの()内の数値を変更するだけで可能です。

塗りつぶしの色を変更したい

RGBの数値を変更すれば可能です。

RGBの数値はWebで検索するか、Excelの「塗りつぶし」→「その他の色」→「ユーザー指定」で確認することができます。

ループ回数を増やしたい

「For文」の最終値を変更することで可能です。

まとめ

最後にポイントについてまとめたいと思います。
・Changeイベントでシート情報の更新時に処理を実行
・「For文」でループ処理しコードをスリム化
・「If文」で条件分岐
・「Cells.Interior.Colorプロパティ」,「Cells.Interior.ColorIndexプロパティ」
 で塗りつぶし
今回紹介した「セルに文字が入力された時にセルをハイライト/グレーアウト」させるマクロは資料に情報がちゃんと入力されているか確認するときに便利かと思います。
実際に活用するにはカスタマイズしていく必要がありますが、上記で紹介した「実用化する為の編集ポイント」を編集すれば簡単に出来ると思いますので是非実施してみて下さい。
皆様の業務改善に役立てたら嬉しいです!
以上、「文字が入力された時にセルを塗りつぶすマクロ」の使い方でした~。

おすすめ教材

文章量は多くなく、図や対話形式で分かり易く解説している教材になりますのでVBA入門におすすめです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

静岡で飲食店巡りやら釣りやらして自由気ままな生活を満喫している20代男性。
暮らしの中で感じたオススメ情報を発信し皆様の役に立てればとブログ運営をしてます。
ここんところウィスキーにはまってます。
■得意ジャンル:グルメ、Excelなど

コメント

コメントする

目次