エクセル作業を自動化する方法【初心者にもできる自動化マクロの導入方法を紹介】
こんな要望にお応えします。
結論から言うと、繰り返し作業や単純作業を自動化するエクセルマクロを導入する!です。エクセルマクロを導入すれば、あなたが行っている機械的な繰り返し作業をプログラムが変わりに処理してくれます。
こんなエクセル作業にマクロはおすすめ
- 様式が決められた資料作り
- 写真の貼り付けが必要な書類作り
- 予定表の更新作業
デスクワークでは上記のように同じような作業を毎日繰り返し行わなければならないことがいっぱいあります。やり方さえ覚えれば誰でもできるような作業は積極的にマクロを使って自動化していくべきだと私は考えています。
私の会社では、何時間もかけて書類を作成し忙しいアピールをする社員がたくさんいます。自動化マクロを導入すれば、エクセル操作が苦手な方でも、複雑な資料作りを一瞬で処理することができるようになります。
この記事では、仕事の効率がアップする自動化マクロについて詳しく紹介しています。エクセル作業が多い!デスクワークの効率を少しでもアップさせたい!という方は参考にしてみてください。
目次
自動化マクロとは
自動化マクロとは、Excel VBAを使って日頃行っている繰り返し作業を自動的に処理をする!ということです。実際に私の職場で導入した自動化マクロを例にしてどのような処理を行うことができるのか!を具体的にご紹介します。
予定表のチェック作業を自動化するマクロ
条件によって背景色を変えていろんなチェックをする作業をマクロを使って効率的に処理することができます。私の仕事は、月に1回と年に1回の周期で現場での検査業務があり、検査漏れが発生しないように周期表を作成しています。下記の動画では、周期表に設定されたチェック作業を自動化するマクロの動きを紹介しています。
チェック作業を自動化するマクロの導入で以下の効果を得ることができました。
- 検査漏れが発生しにくくなった
- チェック作業が簡単になった
- 周期表が見やすくなり、予定がたてやすくなった
チェック作業の自動化マクロのサンプル(背景色変更)
1 | Sub 背景色変更() |
2 | gyo = Cells(Rows.Count, 9).End(xlUp).Row |
3 | For i = 4 To gyo Step 6 |
4 | Range(Cells(i, 1), Cells(i + 2, 26)).Interior.Color = RGB(234, 234, 234) |
5 | Next |
6 | For i = 7 To gyo Step 6 |
Range(Cells(i, 1), Cells(i + 2, 26)).Interior.Color = xlNone | |
8 | Next |
9 | For i = 4 To gyo |
10 | For j = 10 To 21 |
11 | If Cells(i, j) = “〇" Then |
12 | Cells(i, j).Interior.Color = RGB(255, 204, 255) |
13 | ElseIf Right(Cells(i, j), 2) = “持込" Then |
14 | Cells(i, j).Interior.Color = RGB(255, 204, 255) |
15 | ElseIf Right(Cells(i, j), 2) = “入金" Then |
16 | Cells(i, j).Interior.Color = RGB(255, 255, 204) |
17 | ElseIf Right(Cells(i, j), 2) = “郵送" Then |
18 | Cells(i, j).Interior.Color = RGB(255, 255, 204) |
19 | Else |
20 | End If |
21 | Next |
22 | Next |
23 | For i = 4 To gyo Step 3 |
24 | If Right(Cells(i, 22), 2) = “予定" Then |
25 | Range(Cells(i, 22), Cells(i + 2, 22)).Interior.Color = RGB(255, 204, 255) |
26 | Else |
27 | End If |
28 | Next |
29 | End Sub |
チェック作業の自動化マクロのサンプル(表示範囲変更)
1 | Sub 点検表表示() |
2 | For i = 1 To 26 |
3 | Columns(i).AutoFit |
4 | Next |
5 | For i = 3 To 8 |
6 | Columns(i).ColumnWidth = 0 |
7 | Next |
8 | For i = 23 To 25 |
9 | Columns(i).ColumnWidth = 0 |
10 | Next |
11 | End Sub |
予定表のチェック作業を自動化するマクロについてもっと詳しくしりたい!という方は下記の記事を参考にしてください。
写真の貼り付けを自動化するマクロ
写真の貼り付け作業を効率的に処理することができます。設定シートで指定するフォルダ内の全ての写真をまとめて貼り付けることが可能で写真の大きさ・配置を自動的に調整し、写真の名前を表示することができます。下記の動画では、指定するフォルダ内の写真データをエクセルに貼り付けるマクロの動きを紹介しています。
指定するフォルダ内の写真データをエクセルに貼り付けるマクロの導入で以下の効果を得ることができました。
- 写真貼り付け作業の効率アップ
- 見やすくきれいな資料の作成が可能なった
写真の貼り付けマクロのサンプル
1 | Sub 写真挿入横() |
2 | Dim Ash As Worksheet |
3 | Set Ash = Sheets(“設定") |
4 | Dim Csh As Worksheet |
5 | Set Csh = Sheets(“写真(横)") |
6 | Const cnsTitle = “ファイル名一覧取得" |
7 | Const cnsDIR = “\*.*" |
8 | Dim xlAPP As Application |
9 | Dim strPath As String |
10 | Dim strFilename As String |
11 | Dim GYO As Long |
12 | Dim zukei As Shape |
13 | Dim myFileName As String |
14 | Dim syasin As String |
15 | Dim Path As String |
16 | rm = Csh.Cells(Rows.Count, 25).End(xlUp).Row |
17 | For Each sa In Csh.Shapes |
18 | On Error Resume Next |
19 | If sa.TopLeftCell.Address >= Csh.Cells(1, 1).Address Then |
20 | sa.Delete |
21 | End If |
22 | If Err <> 0 Then |
23 | Err.Clear |
24 | End If |
25 | Next |
26 | For i = 3 To rm Step 21 |
27 | Csh.Range(Csh.Cells(i, 25), Csh.Cells(i + 2, 38)).ClearContents |
28 | Next |
29 | Set xlAPP = Application |
30 | strPath = Ash.Cells(3, 1) |
31 | If Dir(strPath, vbDirectory) = “" Then |
32 | MsgBox “指定のフォルダは存在しません。", vbExclamation, cnsTitle |
33 | Exit Sub |
34 | End If |
35 | strFilename = Dir(strPath & cnsDIR, vbNormal) |
36 | Do While strFilename <> “" |
37 | GYO = GYO + 21 |
38 | Csh.Cells(GYO – 18, 25).Value = strFilename |
39 | strFilename = Dir() |
40 | Loop |
41 | For i = 1 To rm Step 21 |
42 | Csh.Cells(i + 2, 2).Select |
43 | syasin = Ash.Cells(3, 1) & “\" & Csh.Cells(i + 2, 25).Value |
44 | Csh.Pictures.Insert syasin |
45 | Csh.Pictures.Top = Range(Csh.Cells(i + 2, 2), Csh.Cells(i + 20, 23)).Top |
46 | Csh.Pictures.Left = Range(Csh.Cells(i + 2, 2), Csh.Cells(i + 20, 23)).Left |
47 | Csh.Pictures.Height = Range(Csh.Cells(i + 2, 2), Csh.Cells(i + 20, 23)).Height |
48 | Next i |
49 | End Sub |
サンプルマクロには、ユーザーフォームの設定が記載されていません。指定するフォルダ内の写真データをエクセルに貼り付けるマクロについてもっと詳しくしりたい!という方は下記の記事を参考にしてください。
複数のエクセルファイルを一つにまとめるマクロ
開いていないエクセルファイルのデータを一つのエクセルファイルにまとめることができます。設定シートで指定するエクセルファイルの全てのシートをコピーし、マクロを設定したエクセルファイルに貼り付ける!という作業を繰り返し行います。下記の動画では、指定するエクセルファイルの全てのシートを一つのエクセルファイルにまとめるマクロの動きを紹介しています。
指定するエクセルファイルの全てのシートを一つのエクセルファイルにまとめるマクロの導入で以下の効果を得ることができました。
- データ集約作業の効率アップ
- サーバー内の整理整頓作業に利用できる
複数のエクセルファイルを一つにまとめるマクロのサンプル
1 | Sub テスト() |
2 | Application.ScreenUpdating = False |
3 | Dim Abook As Workbook |
4 | Set Abook = ActiveWorkbook |
5 | Set Ash = Abook.Worksheets(“設定") |
6 | For k = 3 To 20 |
7 | Dim exfile As String |
8 | If Ash.Cells(k, 2) = “" Then |
9 | Exit Sub |
10 | Else |
11 | exfile = Ash.Cells(k, 2) |
12 | End If |
13 | Workbooks.Open Filename:=exfile |
14 | If Err.Number > 0 Then |
15 | MsgBox “ファイルはすでに開かれています。" |
16 | Exit Sub |
17 | End If |
18 | Dim Bbook As Workbook |
19 | Set Bbook = ActiveWorkbook |
20 | For i = 1 To Bbook.Worksheets.Count |
21 | Bbook.Worksheets(i).Copy After:=Abook.ActiveSheet |
22 | Abook.ActiveSheet.Name = Abook.ActiveSheet.Name & “(" & Bbook.Name & “)" |
23 | Next i |
24 | Bbook.Close |
25 | Next k |
26 | End Sub |
サンプルマクロではシートの様式やマクロ実行ボタンの設定まですることができません。複数のエクセルファイルを一つにまとめるマクロについてもっと詳しくしりたい!という方は下記の記事を参考にしてください。
罫線を利用した予定表を自動作成するマクロ
日付や時間を記入した一覧表を予定表に変換し、罫線を使って見やすく表示するができます。一覧表では予定の全体を把握しずらい!というときに便利な予定表になります。
仕事の内容的に、作業場所と作業時間がバッティングしては絶対にダメ!という条件で作業の予定を決めていきます。そのときに、日付や時間・場所を羅列した一覧表では全体の予定を把握することが困難であるため、罫線を使った予定表を作成しなければなりません。
下記の動画では、罫線を利用した予定表を自動作成するマクロの動きを紹介しています。
罫線を利用した予定表を自動作成するマクロの導入で以下の効果を得ることができました。
- 予定表作成作業の効率がアップ
- 予定表作成ミスが軽減
- 急遽発生する予定の変更に迅速に対応できるようになった
職場で使っている独自の予定表だったり、資料がいくつもあるかと思います。独自の様式に対応する自動化マクロを設定することができればエクセル作業の効率を格段にアップさせることが可能です。
エクセルVBA未経験の方が自動化マクロを導入する方法
自動化マクロの導入は難しいから私には無理!と思われている方がいらっしゃると思います。たしかにマクロを扱うにはExcel VBAの知識が必要になり、だれにでもすぐにできることではありません。
しかし、自動化マクロの設定のやり方とコツさえ理解すれば、Excel VBAの知識がなくても導入することは十分可能です。エクセルVBA未経験の方でも自動化マクロを導入して利用する方法をご紹介します。
自動化マクロが設定されたエクセルファイルを利用する
ネットでは、自動化マクロが設定されたエクセルファイルをダウンロードすることができるサイトがいくつも紹介されています。あなたが利用したい自動化マクロをダウンロードして、そのままエクセル作業に利用する!ということが最も簡単に自動化マクロを利用できる方法です。
上記の動画で紹介されている自動化マクロについては下記のサイトでダウンロードしてお使いいただくことが可能です。使ってみたい自動化マクロがあればサイトをチェックしてみてください。
参考書やネットで紹介されている自動化マクロを自分で設定する
ネットや参考書に掲載されているマクロをそのままコピーして自分のエクセルファイルで利用する!という方法です。この方法はエクセルVBAにサンプルVBAを自分で書き込む、もしくは貼り付ける必要があるので、そんれほど難しい操作ではありませんがExcel VBAの知識が必要になります。下記では、エクセルVBAにマクロを書き込む方法とマクロの実行の方法を簡単に説明しています。上記で紹介しているサンプルマクロをコピペしてお使いいただくことも可能ですので、ぜひ試してみてください。
①エクセルVBAの起動方法
②マクロを記載する場所(標準モジュール)を開く
③マクロを書き込む
④書き込んだマクロを実行する
上記の手順で、マクロを書き込む→書き込んだマクロを実行することができます。ネットや参考書で気になる自動化マクロを見つけた場合、上記の手順に沿ってマクロを使ってみてください。
自動化マクロの開発を依頼する
マクロの開発をプログラマーに依頼する!という方法です。この方法は費用がかかるものの、最も簡単にあなたの表現したい自動化マクロを導入できる方法です。
マメBlogでは、上記の動画で紹介したような独自の様式に対応する自動化マクロの開発依頼を受注しています。私はプログラマーではありませんが、エクセル作業の効率をアップさせるマクロの開発に関してはいろんな経験をしてきたので、効率アップに繋がるアイデアを提案できるかと思います。こんな作業を自動化したい!この様式に自動化マクロを設定してほしい!という依頼があれば、お気軽に下記の送信フォームからお問合せください。自動化マクロのご提案・開発をさせていただきます。
自動化マクロ導入の効果
自動化マクロを導入することで、私の職場では下記の効果を得ることができました。
- エクセル作業の効率アップ
- 資料作成時のヒューマンエラーの軽減
- エクセルが得意な人とそうでない人の格差軽減
- 残業の削減・デスクワーク以外の時間を確保・人件費削減
間違いなく仕事の効率がアップするためメリットしかないと私は考えていますが、マクロの導入に否定的な方もいらっしゃいます。
- マクロの処理内容が理解できないため導入したくない
- Excel VBAの知識がある人が職場にいないと導入することができない
- プログラムの内容を変更することが困難
このようなデメリットもあるので最初から導入しない方がいい!と考える方も少なくありません。
たしかにマクロを導入していくにはExcel VBAの知識が必要となり、誰でも簡単にできることではありません。プログラミングが苦手な方もいらっしゃいます。自動化マクロをどの程度積極的に導入していくかは人それぞれの考え方によりますが、私はマクロ導入のデメリットよりもメリットの方が遥かに大きいと思うので積極的に導入していくべきだと考えています。
自動化マクロを作りたい方におすすめの参考書
自動化マクロがどういうものか知れば知るほど、自動化マクロを導入したい!と思えてくるのではないでしょうか。これからExcel VBAの勉強を始める!というExcel VBA初心者の方におすすめの参考書をご紹介します。
エクセルVBAに触れたことがない!という方におすすめの参考書をご紹介します。
たった1秒で仕事が片付くExcel自動化の教科書
たった1秒で仕事が片付くExcel自動化の教科書は私がVBAの勉強をはじめた頃すぐに購入した参考書です。書店で軽く中身を確認してすぐに購入、家でじっくり勉強させてもらいました。
仕事で毎日行うエクセル作業を自動化できるようになる!と初心者の私にもわかるような内容で説明されていました。
VBAの難しい言語の説明というよりも、VBAでこんなことができます!具体例はこちら!みたいな感じでどんどん読み進めることができる参考書です。サンプルマクロがいくつも紹介されていて、プログラム内容を少し編集するだけで実際の仕事に応用できるマクロばかりです。
VBAの書く場所や書き方すらわからない私でも、参考書の書かれている内容通り操作していくと簡単なマクロを作成することができるようになりました。
For〜Next(繰り返し処理)の使い方が説明されいる箇所があり、サンプルも一緒に記載されているのでとてもわかりやすく、すぐに仕事のエクセルに取り入れることができました。
下記の記事ではFor〜Nextの使い方について詳しく紹介しています。
For~Next(繰り返し処理)は集計作業や一覧表で数量管理など幅広いエクセル業務で利用されます。
参考書にはFor〜Next(繰り返し処理)以外にも仕事でよく使われるVBAが具体例とともに多数紹介されています。これからVBAを使って仕事の効率をアップさせたい!と考えている方におすすめの参考書です。
Excel VBAの絵本
エクセルVBAってなに?エクセル作業の自動化なんてできるの?というようなエクセルVBA初心者の方にピッタリの参考書をご紹介します。
Excel VBAの絵本はエクセルVBAに触るのが初めて!という初心者の方におすすめです。変数や演算子といったような初心者の方に難しいとされる分野を絵や図形を用いてわかりやすく説明されています。
2ページで1つの話を完結させる!という構造になっているので、ページをいったりきたりさせるストレスが全くありません。難しいプログラムの理解を深めるというよりも、イメージでVBAの勉強をすることができる!という参考書です。
日頃エクセルは扱っているけど、VBAなんて開いたことも見たこともない!という方がほとんどだと思います。エクセルVBAはパソコンにエクセルソフトが入っていれば誰でもすぐに始められるプログラミングです。
仕事の効率を上げたい!キャリアアップしたい!と考えている方はエクセルVBAを勉強してみてはいかがでしょうか。
エクセルに限らず、パソコン作業の自動化をする方法
Excel VBAで作成する自動化マクロはエクセルがベースとなったプログラミングです。そのため、エクセルを介さなければ何かしらの処理を行うことができません。
エクセルを介さず、パソコンの操作する技術として、RPA(Robotic Process Automation)というものがあります。
RPAとは、毎日行う同じようなパソコン作業を自動で処理してくれるロボットのことで、エクセルに限らずパソコン作業自体の自動化を実現することができます。このRPAという技術の導入はMICHIRU RPAがおすすめです。
MICHIRU RPAは、RPAの導入→業務ロボ作成→運用・保守を行ってくれるので、導入の手間が全くかかりません。やることと言えば、自動化したい業務の選定だけ!です。
下記の記事で、MICHIRU RPAについて詳しく紹介しています。パソコンを使ったデスクワークの効率をアップさせたい!という方はチェックしてみてください。
ディスカッション
コメント一覧
まだ、コメントがありません