Excel力アップ!VBAに挑戦!〈第三弾〉
みなさんこんにちは!
今まで2度UdemyのExcel VBA講座を受講した感想について書きました。
最近ついに自身の業務で使用するマクロの作成に取り組み始めたので、その内容について書きたいと思います!
作成しているマクロについて
今回作成しているマクロは、以前記事に書いた予算推定管理表作成の自動化するためのものです。
予算推定管理表は毎月1回上司が手作業で作成しているもので、現状1回あたり1時間くらいかかっているそうです。
マクロの全体像の把握(作業手順の整理)
以前UdemyのExcel VBA講座を受講したときに、「マクロを作成するときは、全体像を把握するために実際の流れを最初に書き出すことが大切」と言っていたのでまずはそこから始めました。
簡単に流れを書くと
①元データからピポットテーブルを作成
②作成したピポットテーブルから必要なデータをコピー
③ヘッダーに合わせてペースト
④セルに「NULL」と入っている場合は空白にする
⑤不要な行(推定ダミーデータの行)を削除する
⑥作成したシートをアクティブにする
流れの整理はこれでOK!
コードはどうやって書くか
初心者の私が1からコードを書くのはほぼ不可能です。
それではどうやってコードを書くか…
①ChatGPTに聞く
②インターネット調べる
今回は①、②の方法で全て書きました。
Excelのマクロの記録も試してみましたが、実際実行するとエラーになりうまく動きませんでした。
困ったこと
作成したマクロはなんとか動いたのですが、ものすごく遅くて動作が終了するまでに10分以上かかってしまいました…
ピポットテーブルのせいだ…(行フィールドの項目が43もあるからだと思われます)
なんとかならないものかと色々検索したところ、ピボットテーブル再計算停止なるコードがあることを知りました。
早速そのコードを追加してみたところ、なんと40秒で動作終了!!!
ActiveSheet.PivotTables(1).ManualUpdate = True
'~ここに処理を入力
ActiveSheet.PivotTables(1).ManualUpdate = False
ちなみに、このプロパティはプログラム終了後自動でFalse(自動再計算)に設定し直されるとのことです。
これから
マクロの作成はできたので、一旦いつも予算推定管理表を作成している上司に見てもらい、改善する箇所がないかを確認したいと思います。
よりよくできるように継続して頑張ります!
最後までご覧いただき、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?