【WEB広告】Excel業務効率化「マクロ」編

Excel業務を毎日行っていると
同じ作業・単純作業があちらこちらに出てきませんか?

Excel関数で数式を組むのが得意な人でも
これ以上はどうにもならない…!
という限界がありますよね。。

WEB広告業界のレポート作成では
数式を消すためにシートを値貼りしたり…
媒体データの抽出を行ったり…

これらの動作を自動化させるのが「マクロ」

ここではマクロの作成方法と
よくセットで耳にする「VBA」との違いについて
説明をしていきます!

Excelマクロとは

マクロの機能

マクロの機能を簡単に言うと

動作を記録し再現させる

「ここの動作を自動化したい」
という部分をExcelに記録させます!

そのあと自分の好きなタイミングで実行し
動作を再現させることができます。

マクロとVBAの違い

よく「マクロ」と一緒に耳にする
「VBA」という言葉。

これはマクロとどういった関係なのか?

それはマクロの「動作を記録する」について
どうやって動作を記録しているのか?
を考えていくと分かってきます!

例えば
「セルA1を選択する」
という動作を記録した場合

Excelの裏では

というプログラムが自動生成されます!

動作が再現されるとき
まずこのプログラムが読み込まれます。

そしてこのプログラム通りに動作することで
記録した動作を再現できるのです!

つまり

マクロを実現するためのプログラムがVBA

と言うことです!

プログラム言語は世の中にたくさんあるので
VBAもその中にある1つのプログラム言語です。

Excelマクロの作成例

シートの値貼り

レポートは数式を使って作ると思うので
出来上がったレポートには
あちこち数式が残ったままですよね?

普通はそれをそのまま使い回すと思いますが

たまにこのレポートをクライアント提出用に
全シート値貼りにして数式を消すという
作業があったりしませんか?

手作業の場合
「全シート選択」→「全選択」→「値貼り」

1回だけやる作業ならなんてことないけど…
毎日毎日やってるとめんどくさいですよね。。

ではさっそくマクロで自動化してみよう!

開発タブを出そう!

Excelの「ファイル」→「オプション」から

「リボンのユーザー設定」→「開発」にチェックを入れます!
そうすると

「開発」というタブが出てきます!
そしてここにある「マクロの記録」を押すと
動作の記録が開始されます!

では早速押してみましょう!

早速動作を記録してみよう!

そうするとマクロ名を記入するポップアップが出てきますので
ここに任意の名前を入力し「OK」!

その後すぐに記録が開始されます!!

ここで全シート値貼りの動作を記録させたいので

①全シート選択
②シート内全選択
③値貼り

という動作を行った後
「記録終了」ボタンで記録STOPさせます。

マクロを実行してみよう!

「マクロ」を押すと登録したマクロの一覧が出てきます!

今回「Macro1」という名前で登録したので
これを選択し「実行」を押すと
記録した動作が再現されます!!!

ボタン1つで全シート値貼りが自動化されました!!

データの抽出

WEB広告業界だと媒体から落としたデータに
余計な項目まで落ちてくることありませんか?

集計に必要のない項目はいらない!
必要な項目だけ残したい!

毎日毎日データを落としては
要らない項目を列削除…列削除…
単純作業。。

これはうんざりしますよね。。

ここでマクロ登場!

媒体から落としてきたExcelデータに対し
要らない列を削除する動作を
マクロ登録してしまえば自動化できますね!

しかし注意!

例えば
「広告名」という項目(A列)を列削除する
という動作を記録したとします。

このとき
①「広告名」という名前を認識してA列削除
②単純にA列を削除
どちらの動きが記録されたかと言うと…

正解は②です!

Excelの裏ではこんなプログラムが記録されています。

つまり項目(列)の順番が入れ替わってしまうと
その都度マクロを登録しなおさないといけません…。

このように

マクロの記録だけでは複雑な動きを再現できない

これを補うには
プログラム(VBA)を組み立てていき
複雑な動作を実現させてあげる
しかありません!

この場合VBAで作るとどうなうなるかを
次の章で紹介します!

VBAの場合

データの抽出をVBAで再現すると
こんな感じになります!


これは「元データ」シートから「抽出」シートに
必要な項目を引っ張ってきています!

【実績】媒体Rawデータ(Excel)から必要な項目を抽出する
MEMO
WEB広告業界で実際に私が初めて作ったツールです。
レポート作成の過程で使用してもらっています。

あらかじめ 「抽出」シートの1行目に
抽出したい項目を入力しておくと
「元データ」シートから項目名が一致するデータをコピペします。

こうする事で
抽出したい項目が変わったとき
マクロだと記録し直さないといけないが
VBAで作っておくと変化に対応できますね!

マクロに慣れたらVBAへ

まずは日頃の単純作業を
マクロで記録することで自動化を行ってみよう!

そうやって自動化するべき部分はどこなのか
見つける感覚を養っていきましょう!

その次に複雑な動きや変化に対応できる様な
自動化を行うためにVBAに挑戦してみましょう!

マクロで記録されたプログラムを見てみたり
ネットで情報収集してみるといいかもしれません!

プログラミングとして
きちんと勉強することを一番お勧めします!

Excel作業をどんどん自動化し楽にしてきましょう!