VBAでセルを点滅させる方法【 ヒューマンエラーを防止する注意喚起VBA 】

Left Caption

豆父ちゃん

ここはかなり重要だから見落とさないように目立たせたい。色の塗りつぶしや図形を使うよりも目立たせる方法ってあるの?

こんな疑問にお答えします。

結論から言うと、注意喚起VBAで目立たせる!ことが効果的です。

これを使えば色の塗りつぶしやコメントの挿入よりもはるかに目立たせることができます。

私の仕事の場合、複数の人が同じエクセルデータを使うため、メモや付箋が多くなり本当に大事なことがわかりづらくなる!という現象が起きてしまいます。そこで活躍するのが注意喚起VBAです。

私の職場では、この注意喚起VBAを導入してから重要な連絡事項の周知漏れがなくなりました。




セルを点滅させる注意喚起VBAとはどんなもの?

塗りつぶしやテキストの色を一定の時間で変化させ点滅させる!というもの

たったそれだけ?と感じる方も多いと思いますが、これが結構忘れ物防止に繋がります。私の職場では注意喚起VBAを導入してから、日付の変更忘れや記入漏れなどのヒューマンエラーが激減しました。

注意喚起VBAは時間を操作する関数と色の操作の組み合わせで作ることができます。

 

基本構造

 

プロシージャ1作成…セルを白に塗りつぶしプロシージャ2を呼び出す

プロシージャ2作成…セルを黒に塗りつぶし、一定時間後にプロシージャ1を呼び出す

 

これでプロシージャ1とプロシージャ2が繰り返し実行され、注意喚起VBAが出来上がります。この基本的な考え方を応用すれば、何かを定期的に変化させるVBAが作れるようになります。

セルを点滅させる注意喚起VBAの導入方法

この記事で紹介しているサンプルVBAをコピーして貼り付けるだけで、セルを点滅させる注意喚起VBAを導入することができます。

様式の作成


まずは上記のように設定をしてください。

サンプルVBAの貼り付け

この記事で紹介されているサンプルVBAをコピーして下記の方法で貼り付けを行ってください。

ボタンの使い方

ボタンを作成して、下記のように作成したVBAを登録してください。


これでセルを点滅させる注意喚起VBAを導入することができます。

セルを点滅させる注意喚起VBA サンプル紹介

上記動画で紹介されている注意喚起VBAのサンプルを紹介しています。

サンプル1

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

 

サンプル2

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 stime = Now() + TimeSerial(0, 0, 1)
7 If Range(“D7").Interior.Color = RGB(0, 0, 0) Then
8 Call Application.OnTime(stime, “Timer1")
9 Else
10 Call Application.OnTime(stime, “Timer2")
11 End If
12 End Sub

プロシージャ1とプロシージャ2はセットで使用します。プロシージャ1のVBAを実行すると上記動画のようにテキストが点滅がスタートします。

サンプル3

1 Sub 一時停止()
2 Dim waittime As Variant
3 waittime = Now() + TimeValue(“00:00:5")
4 Application.Wait waittime
5 End Sub

 

サンプル4

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

紹介した4つのサンプルVBAはコピーして使うことができます。注意喚起VBAの導入方法を参考にして使ってみて下さい。

セルを点滅させる注意喚起VBAの使い道

扱うエクセルデータによって重要なことって異なりますよね。期日に注意すること!だったり、必ず保存をすることだったり!と様々です。

注意喚起VBAの使い道と使い始めた経緯を紹介します。

使い道① 上書き保存忘れ防止

申請書類を作成するエクセルデータで職場内で順番に番号を取得しなければならい業務があります。そこで発生したのが、番号を取得したのにもかかわらず上書き保存を忘れてしまった!という事象です。

そんなときに「上書き保存」というテキストの色を定期的に変えて、目立たせる注意喚起を行いました。人間はこの注意喚起にも時間が経つと慣れてきてしまうので、ある程度時間が経ったら色を変更するなどの工夫をしています。

この注意喚起VBAは下記のサンプルで紹介しています。

 

使い道② 日付、氏名の再確認

コピペで過去のエクセルデータから書類を作成することって多いですよね。いちから資料を作るよりも時間がかからなくて効率の良い方法ですが、全ての編集をしないまま作業を終えてしまう!ということが発生してしまいます。よくあるのが日付や責任者の氏名の変更忘れです。

そんなときに、コピペしたデータの中で必ず1度は確認しなければならないセルを点滅させる!という注意喚起VBAを開発しました。

 

使い道③ 期日や納期を知らせる

予定表やカレンダーとして使っているエクセルには期日や納期が設定されているものがあります。納期や期日のセルの色を変更して目立たせていても慣れてしまうと目に入らなくなります。

そんなときに便利なのが、指定した日付になるとセルが点滅する注意喚起VBAです。これを使えば納期や期日が迫ってきていると改めて気づくことができます。

使い方によって注意喚起VBAはとても便利なものになります。

 

セルを点滅させるマクロを使いたい方へ

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

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

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

注意喚起VBAの作成依頼

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

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

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

注意喚起VBAに必要な処理① 時間を操作する関数

TimeSerial関数

引数で指定した(時 , 分 , 秒 )の値を返すもの

 

基本構造

 

TimeSerial( 時 , 分 , 秒 )

0~23の数値を指定
0~59の数値を指定
0~59の数値を指定

戻り値は日付型(Date)を宣言

 

OnTimeメソッド

時間を設定してVBAを実行することができる

基本構造

 

Application.OnTime EarliestTime , Procedure , LatestTime , Schedule

 

EarliestTime プロシージャの実行する時刻
Procedure 実行するプロシージャ名
LatestTime プロシージャを実行できる最終時刻
Schedule 新しいOnTimeプロシージャを設定・・True
直前のプロシージャの設定を解除・・False

時間を操作する関数について下記の記事で詳しく紹介しています。

 

注意喚起VBAに必要な処理② 色の操作

セルの塗りつぶし

セルの塗りつぶしはInteriorプロパティを使用

基本構造

Range.Interior.プロパティ = 設定値

プロパティ プロパティと設定値の関係性
Color RGB値を使用
ColorIndex 色定数を使用

 

色の塗りつぶしサンプル一覧

Range(“A1").Interior.Color = RGB(255,0,0)  :A1セルが

 

Range(“A1").Interior.Color = RGB(0,255,0)  :A1セルが

 

Range(“A1").Interior.Color = RGB(0,0,255)  :A1セルが

 

ExcelのツールでRGBの数値を調べる方法

テキストの色の操作

テキストの色の操作はFontプロパティを使用します。

Range.Font.プロパティ = 設定値

プロパティと設定値については上記(セルの塗りつぶし)で説明したものと同じです。

 

テキストの色の操作サンプル一覧

Range(“A1").Font.Color = RGB(255,0,0)  :A1セルが

 

Range(“A1").Font.Color = RGB(0,255,0)  :A1セルが

 

Range(“A1").Font.Color = RGB(0,0,255)  :A1セルが

色の操作について下記の記事で詳しく紹介しています。

 

セルを点滅させる注意喚起VBAで作業効率がアップ

注意喚起VBAは計算を一瞬で行ったたり、単純な手作業を一瞬で行ったりするものではないので注意喚起VBAによる効果がわかりにくい。しかしこれによって確実にミスが減っているのがわかるはずです。

ヒューマンエラーが発生してしまうのは仕方のないことですが、ミスを修正する作業ほど効率の悪いことはありません。少しでもヒューマンエラーの発生を少なくするために、注意喚起VBAはとてもおすすめです。

注意喚起VBAのプログラムではCallという機能を使用しています。Callはとても便利な機能で、プロシージャで作った他のプログラムを呼び出すことができる!というものです。

下記の記事ではFunctionプロシージャとCallの違いを中心にCallの使い方を詳しく紹介しています。

注意喚起VBAを自分でも作ってみたくなったという方は合わせてチェックしてみて下さい。