初心者でもできる!Excel VBAで業務効率化!
みなさんこんにちは!
私は小売業で利用されるITインフラ、システムの開発・保守・運用をしている企業で管理会計業務のサポート的な仕事をしています。
ここ2ヵ月ほどExcel VBAで業務効率化しようと取り組んでいたので、その内容をまとめたいと思います😆
なぜExcel VBAで業務効率化しようと思ったのか
以前自己紹介の記事にもさらっと書いたのですが、自身の業務はほぼExcel管理で、毎日いろんなExcelとにらめっこしています😑
なので、業務効率化を考えたときに真っ先に思い浮かぶのがExcelでした。
マクロで何かを自動化できたら、業務効率化になると確信!
Excel VBAを学んでみる!
ただ私は全くのExcel VBA初心者だったので、とりあえずUdemyで初心者向けの講座を受けてみることにしました!
どこにコードを入力するのか、変数とは何かなどめちゃくちゃ基礎的なところから学びました。
2つの講座を受けて、自分で1からコードを書くのは無理だけど、見本を見ながらなら書ける状態になりました😊
実際に作っていこう!
①まず作るものを決める
それではさっそく自身の業務で使用するマクロの作成していきます。
作成するのは、以前記事に書いた予算推定管理表の自動作成です!
(予算推定管理表=収支見通しの確認・更新に必要な管理表で、案件の増減や 金額変更などを管理するためのExcelファイル)
この内容に取り組んだのは、上司から「自動で作成できるようになったらいいな」とお話しいただいたのがきっかけでした。
現状は毎月一度上司が手作業で作成し、約1時間くらいかかっているとのこと。
作業手順が定型のため、Excel VBAで自動作成できるのではと考えました!
②マクロの全体像の把握(作業手順の整理)
まずマクロの全体像を把握するため、作業手順の整理を行いました。
上司に普段の作成方法を教えていただき、それを紙に書いて整理し、下記の順番でコードを書いていくことにしました!
ただ初心者の私がピボットテーブルを作るマクロを作成というのは難易度が高い気が・・・とりあえず頑張る!!!
③コードを書く→修正を繰り返す
実際にコードを書いていきます。
何度も言っている通り私は初心者なので、さすがにまだ1から自分でコードを書くのは無理です・・・
そこで私はChatGPTを利用して作成することにしました!
ChatGPTって本当にすごいです・・・
こちらからこんなコードを書いてと指示したら、めちゃくちゃ速いスピードで書いてくれる・・・
全くの初心者でもマクロを作れる時代になったなんて驚きですね・・・
もちろん万能ではなく、何度修正をお願いしても全然ダメなこともありました😓
そういうときはインターネットで作りたいマクロのキーワードを検索!
いろんなサイトでコードの例をまとめてくれているので、とても助けられました!
またインターネットで見つけたコードの例をChatGPTに貼って、「ここの部分をこういう風に変更して」と指示するなどいろいろ工夫しました😊
【補足】試行錯誤したところ
最初できあがったとき、マクロの動作終了までなんと10分以上かかってしまいました😨
さすがに遅すぎる・・・
どうもピボットテーブル作成のせいで遅いよう・・・(行フィールドの項目が43もあるからだと思われます)
なんとかならないものかといろいろ検索したところ、ピボットテーブル再計算停止なるコードがあることを知りました!
早速そのコードを追加してみたところ、なんと40秒で動作終了!!!
ActiveSheet.PivotTables(1).ManualUpdate = True
'~ここに処理を入力
ActiveSheet.PivotTables(1).ManualUpdate = False
コードをちょっと追加しただけでこんなに速くなるとはビックリでした😆
④上司に見てもらい、意見をもらう
一旦出来上がったところで 上司に見てもらい意見をいただきました。
3点追加要望をいただきました!
⑤コードを追加して→→→完成!
追加要望いただいた内容のコードも入れ、ついに完成しました!
完成の喜びはひとしおでした~😭
作った結果!
完成したものを上司に見てもらったところ、「すごい!かなり作成が速くなるね!」とうれしい感想をいただきました~😊
先日2024年度の予算推定管理表を作成する機会があり、このマクロで作成した管理表をもう実業務で使用しています!
作成時間が約1時間→40秒と短縮されて、また実際に使えるマクロを作れて 本当にうれしかったです!
もう1つ作ってみた!
1つ目が意外とサクサク出来上がったので、もう1つ作りました!
こちらも以前記事に書いた推定アップロード用ファイルの自動作成です!
(推定アップロード用ファイル=予算推定管理表で変更した内容を、社内システムでデータ更新するために必要なExcelファイル)
推定アップロード用ファイル、毎回手作業で作成するのが面倒くさいと思っていました💦
この作業は現状自身しか実施しておらず、毎月14から20ファイルほど作成。入力漏れのチェックも含め2時間くらいかかっています。
作業自体はコピー&ペースト、列削除など単純なので、Excel VBAで自動作成できるのではないかと考えました!
そこで、自動でコピー&ペースト・不要列削除・データ置換などを行い、アップロード用データを別シートに作成するようにしました!
必須項目のセルが空欄だった場合色付けするように設定し、入力漏れに気づきやすくなりました~🙌
このマクロで推定アップロード用ファイルの作成時間を大幅に削減できそうです!
【補足】ChatGPTに指示するときの注意点
ChatGPTにコードを書いてもらうことに慣れてきた頃、細かく指示文章を書くのが面倒くさくなったのでちょっと省略して書いてみました!
そうしたら思うようにマクロが動作しない・・・
人相手だったらニュアンスでなんとなく察してくれるけど、さすがにコンピュータには無理ですね~😓
【❌ダメだった指示文章】
【⭕OKだった指示文章】
これからのこと
2ヵ月間いろいろ悩みながら試行錯誤してマクロを作成しましたが、最終的に業務効率化できるマクロを作れて本当によかったー😆
まだまだ初心者であることには変わりないので、継続して勉強し、いつの日かExcel VBAマスターになりたいと思います笑
関係ないですが、直近の目標は昨年買って放置しているITパスポートの参考書を開き、早々に資格を取得することです!
ここ2ヵ月で勉強する習慣がついたから、継続して頑張るぞー👍
最後まで読んでいただき、ありがとうございました!