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

豆父ちゃん
こんな疑問にお答えします。
結論から言うと、注意喚起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の勉強を始める前は上記の方法で効率化マクロを導入していました。
完成されたマクロを使ってエクセル業務を処理する
↓
作業効率が2倍以上アップ!!
↓
便利すぎて自分でもマクロを設定したいと考え始める
↓
参考書やネットの情報でVBAスキルを身に付ける
↓
マクロ開発を代行できる程のスキルを習得
VBAは
他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい
という特徴があります。
毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。
マクロの開発を外注に依頼する
マクロの開発を外注に依頼する導入方法は
VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法
です。
「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」
こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

ガッツポーズの人
デメリットは、費用がかかることだけ。
開発内容、依頼先によってかかる費用は大きく異なります。
私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

疑問がある人
ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。
開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、
費用が安い!スピード納期!!
でやらせてもらっています。
ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。
ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。
マクロが設定されたエクセルファイルをダウンロードする
VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。
たとえば、
A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、
『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。
実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

ガッツポーズの人
『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、
VBA初心者でもマクロを導入できる、費用が安い、
というメリットがあります。
しかし
VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい
というデメリットもあります。

ガッツポーズの人
個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。
今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。
参考書やネットでVBAスキルを身に付ける
先程も紹介しましたが、
VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい
プログラミングです。
言い換えると、
情報量が豊富なので自分で勉強できちゃう
ということです。
私のVBAスキルはほとんど独学で身に付けたもので、
考えた処理のほとんどをVBAで表現できるレベルにまで到達した!
と思っています。
私の作ったマクロをプロのプログラマーが見れば、
お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!
と感じるはずです。
でも、
私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?
独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、
業務内容に合ったマクロを開発できるようになれます。
独学でVBAスキルを身に付けるコツは、
エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる
です。
とは言っても、全くの知識0の方は何をすればいいかわからないですよね。
VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。
VBAの知識0の方でもすいすい読み進められる内容になっています。
やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。
実際に私はこの参考書を読んでからVBAの勉強を始めました。

ひらめく人
VBAの魅力を発見した後は、
ひたすら自動化したい処理を実現するコードを書くだけ
です。
【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。
実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると
自然といろんなマクロが作れるようになっているはずです。
VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。
ディスカッション
コメント一覧
まだ、コメントがありません