チェック表をエクセルで作成する方法【クリックするだけでチェック処理できるマクロを設定】

疑問がある人
こんな疑問にお答えします。
この記事では、VBAで便利なチェック表を作り方法を詳しくご紹介しています。
仕事では、工事監督業というものがあり、いろんな業務を並行して同時に進めなければなりません。ほとんどの業務が期限が決まっているので進捗管理がとても重要になります。
「この業務は明日までに終わらせなければいけないから優先させて、あの業務はいつまでに終わらせよう」と頭の中で考えていると、「業務のやり忘れ」が生じてしまいます。そんな「業務のやり忘れ」を防止するために作成したのが、VBAを設定した使いやすいチェック表です。
チェック表の様式設定、導入したVBAの解説・導入方法詳しくご紹介します。
目次
使いやすいチェック表とはどういうものか
今回作成した、業務の進捗管理をするチェック表はどのうようなものなのか説明していきます。
チェック表には以下の機能を設定しています。
- 「年」と「月」から日付と曜日が自動入力される
- セルをクリックするだけで「チェック」できる
- 期日の3日前になるとチェック項目の背景色を変えて目立たせる
VBAを使うことで上記の機能を自動化し、簡単に操作することができます。
「年」と「月」から日付と曜日が自動入力される
「年」と「月」を入力し「日付変更」ボタンを押すと、日付よ曜日が自動的に正しい値に修正されます。日付変更VBAには以下のような機能が設定されています。
- 閏年の2月は29日まで表示し、それ以外は28日まで表示させる
- 土曜のテキストを青に変更する
- 日曜のテキストを赤に変更する
チェック表に限らず日付と曜日の記入が必要なエクセルファイルで利用頻度の高いVBAなので自由に扱えるようにしておきましょう。
セルをクリックするだけで「チェック」できる
セルをクリックするだけで以下の処理を行うことができます。
- 予定の背景色を「白」→「緑」に変更
- チェック欄の「空欄」→「〇」に変更
- チェック欄に〇を表示させると自動で予定の背景色が変更「緑」→「灰色」
クリックするだけで予定の背景色やチェック欄を入力することができるので、予定の入力やチェック操作がとても簡単です。チェック欄に「〇」が記入されると、予定の背景色が自動的に灰色に変更されるので、完了した業務なのか、まだ残っている業務なのか一目で確認することができます。
期日の3日前になるとチェック項目の背景色を変えて目立たせる
「期日チェック」ボタンを押すと以下の処理を行うことができます。
- 立てた予定の期日が3日前になるとチェック項目の背景色が「ピンク」になる
- チェック欄に「〇」を記入するとチェック項目の背景色は「ピンク」→「白」になる
- 予定の期日が過ぎていたり、4日以降だとチェック項目の背景色は「白」のままになる
チェック表導入の最大の問題点は、「操作がめんどうになり、チェック表を使わなくなる」ことです。チェック表の本来の目的は「業務のやり忘れ防止」を実現することであって、チェック表の操作ではありません。

悩んでる人
チェック表は、「いかに手間がかからず使いやすいか」が重要です。VBAを導入することでチェック表操作の手間を激減させることが可能です。
チェック表の作り方【様式設定】
チェック表の様式は上図のように設定していください。
- 3列目・・・チェック項目欄
- 35列目・・・チェック欄
- 35列1列目・・・「年数」と「月数」
- 3行目・・・日付
- 4行目・・・曜日
表の枠を増やしたい、チェック欄の位置を移動させたいという場合、VBAの改修が必要になります。下記にコピペして使えるサンプルVBAを掲載しているので、チェック表をアレンジさせたいという方は是非活用してみてください。
チェック表の作り方【VBAの設定】
チェック表には以下の処理をするVBAを設定しています。
- 日付、曜日を自動で編集するVBA
- セルをクリックすると背景色を変更するVBA
- 条件からセルの背景色を変更するVBA
上記のVBAを設定することで、チェック操作はクリックだけとなり業務の進捗管理に専念することができるようになります。
日付、曜日を自動で編集するVBAの導入方法
1.VBAを起動
2.標準モジュールを作成し、VBAを記載
3.日付、曜日を自動で編集するサンプルVBA
1 | Sub 日付() |
2 | For i = 1 To 31 |
3 | Cells(3, i + 3) = i |
4 | Next |
5 | If Month(Cells(1, 35)) = “2" Then |
6 | GoTo L1 |
7 | ElseIf Month(Cells(1, 35)) = “1" Or Month(Cells(1, 35)) = “3" Or Month(Cells(1, 35)) = “5" Or Month(Cells(1, 35)) = “7" Or Month(Cells(1, 35)) = “8" Or Month(Cells(1, 35)) = “10" Or Month(Cells(1, 35)) = “12" Then |
8 | For i = 4 To 34 |
9 | Cells(4, i) = WeekdayName(Weekday(Year(Cells(1, 35)) & “/" & Month(Cells(1, 35)) & “/" & Cells(3, i)), True) |
10 | Next |
11 | Else |
12 | For i = 4 To 33 |
13 | Cells(4, i) = WeekdayName(Weekday(Year(Cells(1, 35)) & “/" & Month(Cells(1, 35)) & “/" & Cells(3, i)), True) |
14 | Next |
15 | Cells(3, 34).ClearContents |
16 | Cells(4, 34).ClearContents |
17 | End If |
18 | L1: |
19 | If Month(Cells(1, 35)) = “2" And (Day(DateSerial(Year(Cells(1, 35)), 2, 28) + 1)) = 29 Then |
20 | Range(Cells(3, 33), Cells(4, 34)).ClearContents |
21 | For i = 4 To 32 |
22 | Cells(4, i) = WeekdayName(Weekday(Year(Cells(1, 35)) & “/" & Month(Cells(1, 35)) & “/" & Cells(3, i)), True) |
23 | Next |
24 | ElseIf Month(Cells(1, 35)) = “2" And (Day(DateSerial(Year(Cells(1, 35)), 2, 28) + 1)) <> 29 Then |
25 | Range(Cells(3, 32), Cells(4, 34)).ClearContents |
26 | For i = 4 To 31 |
27 | Cells(4, i) = WeekdayName(Weekday(Year(Cells(1, 35)) & “/" & Month(Cells(1, 35)) & “/" & Cells(3, i)), True) |
28 | Next |
29 | Else |
30 | End If |
31 | For i = 4 To 34 |
32 | If Cells(4, i) = “土" Then |
33 | Cells(4, i).Font.Color = RGB(0, 176, 250) |
34 | ElseIf Cells(4, i) = “日" Then |
35 | Cells(4, i).Font.Color = RGB(255, 0, 0) |
36 | Else |
37 | Cells(4, i).Font.Color = RGB(0, 0, 0) |
38 | End If |
39 | Next |
40 | Range(Cells(3, 4), Cells(4, 34)).HorizontalAlignment = xlCenter |
41 | End Sub |
4.ボタンを作成
5.ボタンにVBAを登録
6.VBAを実行
セルをクリックすると背景色を変更するVBAの導入方法
1.VBAを起動
2.SheetにVBAを記載
3.セルをクリックすると背景色を変更するサンプルVBA
1 | Private Sub Worksheet_SelectionChange(ByVal Target As Range) |
2 | On Error Resume Next |
3 | For i = 5 To 20 |
4 | For j = 4 To 34 |
5 | If (Target.Cells.Interior.Color = RGB(255, 255, 255)) And (Target.Row = i) And (Target.Column = j) Then |
6 | Target.Cells.Interior.Color = RGB(0, 255, 0) |
7 | ElseIf (Target.Cells.Interior.Color <> RGB(255, 255, 255)) And (Target.Row = i) And (Target.Column = j) Then |
8 | Target.Cells.Interior.Color = RGB(255, 255, 255) |
9 | End If |
10 | Next |
11 | Next |
12 | If (Target.Column = 35) And (Target.Value = “") Then |
13 | Target.Value = “〇" |
14 | Else |
15 | End If |
16 | For i = 5 To 20 |
17 | For j = 4 To 34 |
18 | If (Cells(i, 35) = “〇") And (Range(Cells(i, j), Cells(i, j)).Interior.Color <> RGB(255, 255, 255)) Then |
19 | Range(Cells(i, j), Cells(i, j)).Interior.Color = RGB(217, 217, 217) |
20 | Range(Cells(i, 3), Cells(i, 3)).Interior.Color = RGB(255, 255, 255) |
21 | Else |
22 | End If |
23 | Next j |
24 | Next i |
25 | For i = 1 To 20 |
26 | For j = 4 To 34 |
27 | If Cells(i, j) = “〇" Then |
28 | Cells(i, j).ClearContents |
29 | Else |
30 | End If |
31 | Next |
32 | Next |
33 | If Err <> 0 Then |
34 | Err.Clear |
35 | End If |
36 | End Sub |
4.VBAを実行
- 条件からセルの背景色を変更するVBA
条件からセルの背景色を変更するサンプルVBA
今回は、「予定期日が3日前になるとチェック項目の背景色が変わる」という条件にしています。
1.VBAの起動
2.標準モジュールを作成し、VBAを記載
3.条件からセルの背景色を変更するサンプルVBA
1 | Sub 期日() |
2 | Dim d As Long |
3 | Dim d2 As Long |
4 | d = Format(Date, “yyyymdd") |
5 | For i = 5 To 20 |
6 | For j = 34 To 4 Step -1 |
7 | If Range(Cells(i, j), Cells(i, j)).Interior.Color = RGB(0, 255, 0) Then |
8 | d2 = Year(Cells(1, 35)) & Month(Cells(1, 35)) & Day(Cells(3, j)) |
9 | If (d2 – d) < 3 And (d2 – d) >= -1 Then |
10 | Range(Cells(i, 3), Cells(i, 3)).Interior.Color = RGB(255, 200, 255) |
11 | Else |
12 | GoTo L2 |
13 | End If |
14 | Else |
15 | End If |
16 | Next |
17 | L2: |
18 | Next |
19 | End Sub |
4.ボタンを作成
5.ボタンにVBAを登録
6.VBAを実行
使いやすいチェック表の導入で「業務のやり忘れ」が激減
今回紹介したVBAを設定したチェック表を導入してから、業務のやり忘れを激減させることができました。

ガッツポーズの人
チェック表の特徴は以下のようになります。
- クリック一つでチェック操作ができる
- 扱いやすく進捗状況が見やすい様式
- 期日を知らせるチェック機能が便利
VBAが設定されていないチェック表はチェック操作が手間だから使わなくなってしまう!という特徴がありますが、VBAを使うことでこのデメリットを解消することができました。
仕事では1人で10件以上のプロジェクトを並行して進めなければいけません。そうすると、あのプロジェクトの打合せって終わった?あの資料を作成しなきゃ!など頭の中を整理しきれなくなります。
進捗状況を簡単に確認できるチェック表があれば的確に業務の優先順位を決めることができるので、「業務のやり忘れ」がなくなります。また上司や同僚に自分の状態を知らせることもできるので仕事の効率をアップさせることができます。
進捗管理が複雑になればなるほどVBAを導入した方が扱いやすくなります。進捗管理がうまくいかない方はこの記事で紹介したチェック表を有効活用してみてください。
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学習をスタートさせちゃいましょう。
ディスカッション
コメント一覧
まだ、コメントがありません