【本当に役立つマクロ】【年間100時間削減】事務職のための初心者向けマクロ講座(その1)

未分類

こんにちは。ひゅうが(@hinatanohyuga)です。

今回は、本当に初心者向けのマクロ講座を行っていきたいと思います。

私は企業で経理をやっているのですが、入社してから6年目まではまともにマクロを使うことができていませんでした。

ただ、社会人7年目に入り業務にも慣れてきたことで改善活動に時間をさけることができるようになってきたのを機に、マクロを勉強し、わずか1年で年間の業務時間を100時間超削減することができました

それほどマクロを使える効果というのは大きく、世の中の経理業務や事務業務の中には皆さんが思っている以上に改善できる余地がたくさんあると思うのです。。

ずーーーーーーーっと、エクセルの数値を別のエクセルへコピー&ペーストをして、転記をし続けるだけで数時間が経ってしまう・・・・。

私も新人の時はそういった経験をしていました。

ただ、こういったことでは、生産性が全く上がらないですし、作業をやっている本人にもやりがいがありません。

パソコンにできることはパソコンにやってもらって、人間だからこそできる作業にもっと時間を割いていきましょう。

皆さんがそういったことを生き生きとできるようになる手助けができると思いますので、ぜひごらんください。

この講座の目的

この講座ではマクロの本当に基本的な内容を説明していきたいと思います。

「マクロを使えると便利って聞くけどどういう風に便利なのかが想像できない」、「具体的に自分の業務にどのように応用すればいいのかがわからない」といったことをよく聞きます。

私もそうでした。

巷ではすごいマクロ使いがあふれていて、素晴らしいプログラムや複雑なプログラムがたくさんネットにあふれていますが、私たちが目指すのはそういったすごいマクロマスターではありません。

私たち事務系の社員は別にプログラマーを目指す必要はないと思うんです。

今回目指すのは、マクロの基本的な操作方法といくつかのプログラムのの使い方を覚えて、自分の業務に応用する力を身に着けるということです。

いくら本で知識を身に着けても自分の業務に応用して、マクロの効果を実感できなければ意味がありませんしやる気も起きません。

マクロを使えることでどういったことができるのかというところから、具体的にどう応用すればいいのかといった観点から説明をしていきたいと考えています。

今回は、マクロはどういった機能があるのかということを重点的に説明し、次回に具体的な機能やマクロの作り方を説明していきたいと思います。

マクロとは

マイクロソフトが提供しているエクセルで使用できるプログラミング言語VBAを使用して作るプログラムのことになります。

エクセルの作業の自動化はもちろんのこと、他のアプリケーションとの連携し自動化をすることも可能となっています。

最近はやりのRPAの一種ということもできるでしょう。

マクロでできること

マクロを使うことで、エクセルで行っている定型的な作業を自動化して、高速で処理を行うことができます。

一定の条件に従って作業を行ってくれるため、人間が行う作業よりも高速かつ正確に作業を行うことが可能です。

具体的な処理としては、以下のような作業をマクロで実行することができます。
・大量データの中から条件に合致する行を削除していく
・50部門に調査を行い、エクセルで返ってきた回答結果を1つのエクセルファイルに集計していく
・調査を行うためのエクセルファイルを50部門用作成する
・あるエクセルファイルから別のファイルへ数値を転記していく(300回)
・社内の予算入力システム(IE)へエクセルの予算データを転記する

基本的にはエクセルを使って人間が行っている処理はすべてマクロで自動化できると思って間違いありません。

マクロの習熟度レベル分け

レベル1:「マクロの記録」機能を使ったマクロの作成

エクセルには、録画機能のようなものがあり、記録開始のボタンを押した後にエクセル上で行った作業をプログラム化してくれるという機能が存在しています。

あまり柔軟な処理は行えなえませんが、単純なコピー&ペースト、数式の入力といった単純作業についてはこの機能を使って自動化することが可能となります。

レベル2:マクロの記録ではできないマクロの作成

マクロの記録では画一的な処理しかプログラム化できませんが、自分でプログラムをかけるようになると、柔軟な作業を自動化することができるようになります。

具体的には、ファイルの検索、別ファイルの集計、別ファイルの操作、作業の繰り返し、条件設定といった作業を自動化することが可能です。

また、自分でプログラムをかけるようになると、他人が作成したマクロの読み取り、修正もできるようになるためかなり幅が広がります。

レベル3:データベースの作成、データフォームの作成

マクロに習熟してくることで、複数のエクセルデータをもとに資料を一から(様式から)作成するといったこともできるようになります。

具体的には、
・複複数のエクセルのデータベース、マスタから必要な情報を取得し、最終的な報告書といった様式にまとめ上げる。
・また、その機能をシステムの形にまとめ、ボタンを押していくだけで、ユーザーが求める作業を行ってくれるようにしてくれ、エラーが発生したときもきちんと想定されており、解決方法が提示される。

ここまでくると、本当に一つのちゃんとしたシステムのような形になってきます。

レベル4:他のシステムとのデータ連携

レベル4になると、エクセルを枠を飛び越えて、他のアプリケーションと連携し、データを取得したり、データを出力したりすることができるようになる。

具体的には、ACCESS、ワード、パワーポイント、インターネットエクスプローラーといった他のアプリケーションと連携、操作をすることができます。

レベルについてのまとめ

個人的な感覚によりレベルを4段階に分けましたが、事務系であればレベル2程度の能力で十分効率化は可能ですし、それ以上はあまり有効ではないと思われる。

あくまで情報システム部門ではなく、ジム部門であるため、費用対効果を見極めてレベルの向上をする必要があるが、レベル2程度であればすぐに自分の力として業務に活用することができるようになります。

個人的なマクロ遍歴

マクロを使えない普通の経理マンだった自分がどういった過程を経てマクロを使うようになったのかということを説明したいと思います。

まずはマクロの記録から

企業に経理として配属された私は、膨大なデータ処理に苦労します。

システムから出力されるCSVのデータはそのままの状態では非常に見づらいし、データの加工がしづらい。

いらない列は非表示にしたり、必要なデータは追加したりしてピボットテーブルで集計をしやすいデータテーブル形式にパパっと編集をしてしまいたい。

しかも、業務上、このデータ編集作業を年300回はすることがあり、1回につき2~3分かかるためやっていくうちに心がやみそうになってしまう。

そこで、入社5年目あたりで、マクロの記録を使ってこの毎回やっているめんどくさいデータ編集作業を自動化しようと思いつきます。

マクロ化した作業内容としては、
 ①いらないデータ列を非表示に
 ②データベースにできるように、数式で条件を設定し、必要なデータ列を追加
  ⇒すでに存在しているデータを分割したり、条件を設定したりする
   年月が記載されているセルのデータから上期・下期を判断しする列を追加
 ③データが存在している箇所のみを印刷範囲に設定
 ④データベースをもとにピボットテーブルを作成
 ⑤ピボットテーブルを見やすい形へ編集
  ⇒集計単位を合計に、アイテム名称をきれいな名称に

これらの作業を手作業でやっていくと、一回当たり10分程度かかりますが、マクロの記録で自動化をするとたった5秒で完了させることができました

この作業を効率化することにより年間で見たら非常に大きな改善効果があることと、精神的な意味でも非常にいい効果が現れました。

成功体験から一転、マクロ作成の挫折

マクロの記録で効率化ができたことをいいことに、次の自動化に取り組もうとした私は早くも大きな壁に阻まれることになります。

自動化しようとした作業は以下のような作業です。
【前提条件】
 1つの部の下に4つのグループが存在している。
 それぞれのグループに調査をかけ、数値を回答してもらう。
 調査を行うエクセル様式は全く同じで、回答される数値が異なっているだけ。
 調査を行うファイルは部ごとにフォルダ分けをしており、各部のフォルダの中に
 4つのグループのエクセルファイルが格納されている。

【自動化する作業】
 ・各部のフォルダの中に部のエクセルファイルを作成し、各グループの数値を集計できるようにする。
 ・集計の方法は、各エクセルファイルをリンク参照する形で集計を行う。
 →部のエクセルファイルを開くたびにフォルダに存在している各グループのエクセルファイルを参照し最新値を集計するため。

【難しかった点】
 ・各部のフォルダ事に処理を行うこと
  →1つのフォルダに格納しているエクセルファイルすべてに同一の処理を行うわけではない
 
 ・数値を転記して合計をするのではなく、リンク参照する形で集計を行う。
  →数値の転記は比較的簡単なのだが、リンク形式で参照するのが難しい・・・・。

いくらネットで解決策を探しても、うまくできず、結局このマクロは挫折してしまいました。

どうしても効率化したくて・・・少しの進歩

難しいマクロには挫折したものの、そこで挑戦したスキルは別のところで生かすことができました。

各部の調査回答結果を集計するといった作業で、部ごとの回答結果を一つのファイルにまとめるといった作業をマクロ化する機会に恵まれました。

マクロ化した作業としては、
 ・一つのフォルダに格納されているエクセルファイルを一つずつ開く
 ・開いたエクセルファイルの該当箇所をコピーする
 ・コピーした情報をまとめファイルの該当箇所にコピー

前回の挫折時にいろいろと調べた経験もあったため、こういった特定のフォルダに格納されている複数のエクセルファイルに対して単純なコピー&ペーストをするといった作業についてはマクロ化できるようになりました。

いきなりの飛躍

7年目になり、仕事にも慣れてきた段階で、時間もできたので、昔挫折したマクロに再度挑戦しようという気持ちが芽生えてきました。

ただ、どうしても、「各フォルダに格納されているファイルを認識する」「各ファイルの特定箇所を参照する数式を埋め込む」という作業をマクロかする作業が難しい。

ネットを見ても全然解決方法が見つからない・・・・。

そこである時、思いついたんです。

「そうだ!ヤフー知恵袋の力を借りよう!」

会社のパソコンは使えなかったので自宅のパソコンで難しい上記の二点をある程度抽象化して質問をすると一日で回答が返ってきました。

その回答の中には、上記の難しい点を解決するには、「変数」と「配列」というものを使わないといけないらしく、回答のプログラムとネットの情報をもとに試行錯誤を繰り返し、全体の集計作業を自動化させるマクロを何とか完成させることができました。

ヤフー知恵袋には、自分の周りにはいないようなマクロマスターさまがたくさんいるんだ、しかも無料で回答してくれるんだというすばらしさを実感した瞬間でした。

さらなる発展

ここからの発展は早かったです。

むずかしい課題をこなすと一気にレベルが上がることと、知識として身に着けた「複数のフォルダに格納されているエクセルファイルに対して処理を行っていく」というマクロがかなり汎用的に使うことができるプログラムであったため、自分の周りに存在している業務にかなり応用することが可能でした。

そんなこんなで、身に着けたプログラミングを応用して経理業務のほとんどすべてにマクロを埋め込んでいき、年間で100時間程度の作業を効率化することができました。

マクロを学ぶうえでの大切な前提事項

マクロは非常に便利なのですが、やり方を間違えると混乱をもたらしてしまいます。

ここではマクロを学ぶうえで大切な前提事項をお伝えしたいと思います。

なんでもマクロ化すればいいというわけではない

マクロは非常に便利なツールではありますが、誰しもが使えるというわけではありません。

私がいた経理部門でも使える人間はほとんどいませんでした。

業務で使用する資料をだれでも使える状態にするという意味では、可能な限り数式で効率化し、数式では不可能な作業をマクロで効率化するといったやり方が望ましいと思います。

というのもマクロで作業を自動化してしまうと、高速で処理をされるため、データがどのような処理過程を経ているのかがマクロを知らない人には理解できないからです。

特に、他人が使うようなマクロを作成してあげる場合は、その人がマクロを編集、修正できるような状態にしておかないと効率化の効果が薄いと思われます。

自分がいなくなったら誰も編集、修正できない野良マクロをたくさん作成したとしても、一時点では喜ばれるかもしれませんが、企業としてはリスクが高くなってしまいます。

マクロの習熟は練習あるのみ

マクロは自分で作らないとできるようになりません。本を読んで理解したつもりになったとしても実務に適用できなければ意味がありません。

試行錯誤を繰り返してこそ、マクロの内容を理解することができると思います。

マクロの前に経理業務とエクセルの基本操作を理解しよう

マクロを作成するには、その前提としてエクセ操作の基本と自分がやりたい作業の内容が理解できていないとマクロは作成できません。

というのも、マクロは、自分が行っている作業を一つ一つに分解し、システム化をする作業になるため、資料の作り方を熟知していないとそもそも作成できないからです。

つくったマクロは流用できる

一回作ったマクロ、プログラムは他の作業にもかなりの確率で流用することができます。

私たちが行っている作業は基本的には似たようなものが多いため、一度作ると他の業務にも応用できるプログラムがたくさん存在しています。

まとめ

今回の講座はここまでです。

マクロがどういったものなんか、どのような効率化ができるのかということについて、少しでもイメージがわいてくれればいいかと思います。

次回では、具体的にマクロの記録やプログラムの方法について説明をしていきたいと思います。

コメント

タイトルとURLをコピーしました