エクセル作業を自動化する方法【初心者にもできる自動化マクロの導入方法を紹介】

Left Caption

豆父ちゃん

毎日同じエクセル作業の繰り返しにうんざり。エクセル作業を自動化する方法ってないの?

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

結論から言うと、繰り返し作業や単純作業を自動化するエクセルマクロを導入する!です。エクセルマクロを導入すれば、あなたが行っている機械的な繰り返し作業をプログラムが変わりに処理してくれます。

こんなエクセル作業にマクロはおすすめ

 

  • 様式が決められた資料作り
  • 写真の貼り付けが必要な書類作り
  • 予定表の更新作業

 

デスクワークでは上記のように同じような作業を毎日繰り返し行わなければならないことがいっぱいあります。やり方さえ覚えれば誰でもできるような作業は積極的にマクロを使って自動化していくべきだと私は考えています。

私の会社では、何時間もかけて書類を作成し忙しいアピールをする社員がたくさんいます。自動化マクロを導入すれば、エクセル操作が苦手な方でも、複雑な資料作りを一瞬で処理することができるようになります。

この記事では、仕事の効率がアップする自動化マクロについて詳しく紹介しています。エクセル作業が多い!デスクワークの効率を少しでもアップさせたい!という方は参考にしてみてください。

広告

自動化マクロとは

自動化マクロとは、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の知識が必要となり、誰でも簡単にできることではありません。プログラミングが苦手な方もいらっしゃいます。自動化マクロをどの程度積極的に導入していくかは人それぞれの考え方によりますが、私はマクロ導入のデメリットよりもメリットの方が遥かに大きいと思うので積極的に導入していくべきだと考えています。

 

VBA初心者が効率化マクロを導入する方法

 

VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!

このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。

 

こんな問題を解決する方法がこちら

  • マクロの開発を外注に依頼する
  • マクロが設定されたエクセルファイルをダウンロードする
  • 参考書やネットでVBAスキルを身に付ける

 

VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。

 

 

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。

 

マクロの開発を外注に依頼する

マクロの開発を外注に依頼する導入方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

Left Caption

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

Left Caption

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。

 

たとえば、

A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、

『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。

 

実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

写真貼付けマクロの使い方を示したイラスト

 

 

Left Caption

ガッツポーズの人

写真貼付け作業の効率がめちゃくちゃアップ

 

 

『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、

VBA初心者でもマクロを導入できる、費用が安い、

というメリットがあります。

 

しかし

VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい

というデメリットもあります。

 

Left Caption

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

Left Caption

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい処理を実現するコードを書くだけ

です。

 

【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。