エクセルでセルを点滅させるマクロの使い方【 いろんな作業に応用可能 】

Left Caption

豆父ちゃん

セルを点滅させて誰が見てもわかるように目立たせたい!

こんな要望にお応えします。

結論から言うと、注意喚起VBAを導入する!です。

注意喚起VBAとは、テキストの色やセルの塗り潰しの色を一定時間で変化させ、セルを点滅させるものです。

注意事項を付箋やセルの色を変えて目立たせるエクセルファイルをよく見かけますが、見慣れてしまうと気にしなくなってしまいます。こんなときに便利なのが注意喚起VBAです。

この記事では、コピーしてすぐに使えるサンプルVBAとVBAの導入方法を紹介しています。



セルを点滅させる注意喚起VBAとは

下記の動画では、セルを点滅させる注意喚起VBAの動作を紹介しています。

セルを点滅させる注意喚起VBAは、時間を操作する関数と背景色やテキストの色を操作するVBAで構成されています。

上記で紹介している注意喚起VBA

1 Sub Timer1()
2 Range(“D7") = “注意喚起"
3 Range(“D7").Interior.Color = RGB(255, 255, 213)
4 Range(“D7").Font.Color = RGB(255, 0, 0)
5 If Range(“D7").Interior.Color = RGB(255, 255, 213) Then
6 Application.OnTime Now() + TimeSerial(0, 0, 1), “Timer2"
7 Else
8 Application.OnTime Now() + TimeSerial(0, 0, 1), “Timer2"
9 End If
10 End Sub
1 Sub Timer2()
2 Range(“D7") = “注意喚起"
3 Range(“D7").Interior.Color = RGB(0, 0, 0)
4 Range(“D7").Font.Color = RGB(255, 255, 255)
5 Dim stime As Date
6 '点滅させる間隔
7 stime = Now() + TimeSerial(0, 0, 1)
8 '現状どちらの色でも動作するために関数IFを使用
9 If Range(“D7").Interior.Color = RGB(0, 0, 0) Then
10 Call Application.OnTime(stime, “Timer1")
11 Else
12 Call Application.OnTime(stime, “Timer2")
13 End If
14 End Sub
1 Sub 停止()
2 Dim stime As Date
3 stime = Now() + TimeSerial(0, 0, 1)
4 On Error Resume Next
5 Call Application.OnTime(stime, “Timer1", , False)
6 Call Application.OnTime(stime, “Timer2", , False)
7 End Sub

注意喚起VBAについて下記の記事で詳しく紹介しています。

エクセルカレンダーに注意喚起VBAを導入

セルを点滅させる注意喚起VBAはエクセルカレンダーに導入することで最大限効力を発揮することができます。

動画では、エクセルカレンダーに注意喚起VBAを導入したときの動作を紹介しています。

点滅させる日付設定は自由自在

予定表に注意喚起VBAを導入するときは、期限や納期が迫ってきている予定を目立たせたい!ということがほとんどです。

使い方によって点滅させたい日付が変化するかと思いますが、セルを点滅させるVBAを使えば自由自在に設定することができます。動画で紹介しているVBAでは、7日後、8日後、9日後の3日間設定しています。

 

 

エクセルカレンダーに注意喚起VBAを設定するときの実行方法

VBAの実行方法として、エクセルファイルを開いたときに注意喚起VBAを実行する設定にすること!です。

Auto Openを使えば簡単に設定することができます。サンプルを下記で紹介しているので参考にしてください。

1 Sub Auto_Open()
2 Call Timer1
3 Call Timer3
4 Call Timer5
5 End Sub

 

  • 1行目のSub Auto Open()がエクセルファイルを開いたときにプログラムを実行する!というもの。
  • 2行目のTimer1が7日後の予定を点滅させる!というもの。
  • 3行目のTimer3が8日後の予定を点滅させる!というもの。
  • 4行目のTimer5が9日後の予定を点滅させる!というもの。

TimerVBAは上記で紹介している注意喚起VBAをアレンジしたものを設定しています。

上記の注意喚起VBAはエクセルファイルを開いた直後の動画です。ファイルを開いてすぐに重要な予定が点滅していれば忘れたり、すっぽかしてしまう心配がなくなります。エクセルを使って予定を管理している方におすすめです。

 

様式が決まった資料に注意喚起VBAを導入

契約書や領収書のような様式が決まった資料に注意喚起VBAを導入することで、資料作成ミスを防止することができます。

動画では、決まった様式に注意喚起VBAを導入したときの動作を紹介しています。

点滅させるセルの設定

様式の中で、内容を変更するセルや特に重要な事項が記入されているセルに注意喚起VBAを設定しておくと、変更忘れや確認忘れの防止になります。また、注意喚起をするセルはいくつも設定することができので、いろんな業務に応用することができます。

私の職場では、エクセルファイルをコピーし古い情報を変更しながら書類を作成する!という方法がよく使われ、申請日や担当者の氏名の変更を忘れてしまう!というミスが発生してしまいます。そんなとき役立つのが注意喚起VBAです。

実際の仕事に導入したのが、日付を入力するセルに今日の日付より古い日付が入力されているとき注意喚起する!というVBAです。この注意喚起VBAの導入で、変更忘れのミスを激減させることができました。

 

決まった様式に注意喚起VBAを設定するときの実行方法

実行方法として、ユーザーフォームで注意喚起VBAを実行する!という方法がお勧めです。今回設定したユーザーフォームは、「チェック」ボタンを押すと、変更しなければならないセルが点滅。「点滅停止」ボタンを押すと、点滅が停止する。というものです。

 

注意喚起VBAの点滅を止める方法

セルを点滅させて目立たせるVBAと同じくらい大切なのが点滅を停止させるVBAです。重要なセルに気づいた後に点滅が続いていたら編集がしずらいので点滅を停止させる必要があります。

様式が決まった資料に注意喚起VBAを導入する方法で使わている点滅を停止するVBA

1 Sub 停止()
2 Dim stime As Date
3 stime = Now() + TimeSerial(0, 0, 1)
4 On Error Resume Next
5 Call Application.OnTime(stime, “Timer1", , False)
6 Call Application.OnTime(stime, “Timer2", , False)
7 Cells(10, 8).Interior.ColorIndex = xlNone
8 Cells(10, 8).Font.Color = RGB(0, 0, 0)
9 Call Application.OnTime(stime, “Timer3", , False)
10 Call Application.OnTime(stime, “Timer4", , False)
11 Cells(10, 16).Interior.ColorIndex = xlNone
12 Cells(10, 16).Font.Color = RGB(0, 0, 0)
13 End Sub
点滅リセットするセルが多いため省略しています。

点滅を設定するセルが増えれば増えるほど停止VBAが増えていきます。5行目~8行目までが1セットで、これを増やしていくことになる。

点滅を停止させるだけではセルの塗りつぶしとフォントの色が中途半端で停止してしまいます。そのため点滅を停止させた後に、・セルの塗りつぶしなし・フォントの色を黒にする設定をしています。(7行目,8行目,11行目,12行目)

この点滅を停止するVBAを使えば、どんな注意喚起VBAもリセットすることができます。是非使い方をマスターしてください。

セルを点滅させるVBAを使いたい方へ

注意喚起VBAのダウンロード

セルを点滅させ注意喚起するVBAを、仕事やプライベートのパソコンで使ってみたい!という方のために、この記事で紹介している注意喚起VBAが設定されているエクセルファイルを下記のリンク(有料note)からダウンロードできるサービスを開始しています。

noteでは、注意喚起VBAを仕事やプライベートの作業で使えるようVBAの編集方法を紹介しています。気になる方は下記のリンクからnoteを参照してください。

注意喚起VBAの作成依頼

当ブログではエクセルマクロの開発依頼を承っております。

この記事で紹介している、セルを点滅させる注意喚起VBAをお使いのエクセルに組み込んでほしい!こんな注意喚起VBAを開発してほしい!などのマクロの開発依頼の受注しています。下記の送信フォームから依頼内容を記載して送信してください。

マクロの開発依頼ではなく、質問などの問い合わせもだけでも構いません。お気軽にお問い合わせください。