VBA集計業務を10年経験してきた筆者だからこそ語れるVBA集計業務を修得して得られるメリットをご紹介します。
VBA集計技習得で明るいみらい
下の図は、わたしが10年間携わっていた集計業務の内容を、簡単な図に表したものです。赤い矢印が、VBAを使う業務になりますが、Accessと連携させる一部の業務でクエリやSQLも使います。
それでは、順次詳しくお話ししていきますね。
データ整形業務(基礎編)
まずは、図の左側のデータ整形業務です。最終的な資料を作るうえで、元ネタになるデータ収集は必須の作業ですよね。
ただ収集される元データには、様々な形式のものがありますので、集まったからといって、そのまま表やグラフの集計には使えないことがほとんどです。
個人持ち「Excelファイル」
個人が所有している「Excel」ファイルには、帳票形式だったり、データ形式でも不要な行や列が挿入されているような、そのままでは集計作業に使えないものがありますよね。
データ量が少ない場合は、目で拾い集めて転記しますが、データ量が多い場合は、そのファイルに合わせてVBAコードを組み、必要なデータだけを取り出すこともあります。
ここで使うVBAコードは、比較的短いものになります。わたしの経験では、定期的に特定の個人から受け取る元ネタには、専用のVBAコードを個別の標準モジュールを作り、その都度使えるようにしてました。
基幹システムからの「csvやテキストファイル」
SAP(財務・購買など)システムや、会社の人事システム・勤怠管理システムなどの、基幹システムから取り出せるcsv・テキスト形式のデータになります。
これらは、整形されたデータとして扱えることもありますが、システムの都合上、集計には不必要なフィールド項目が入った状態で出力される場合もあります。この必要と不必要なデータを分ける作業にVBAを利用します。
手書き資料・ファイリング資料
これは個人持ちや部課でファイリングされている紙の資料を含む手書き資料です。これらを集約ファイルに転記する作業は、VBAが使えませんので目で行います。ただ、転記後の確認作業において、補助的にVBAが使えます。
資料作成業務(集計編)
図の上部になります。一枚のExcelシートに資料の元ネタとなるデータがすべて準備された状態から、資料に掲載する表やグラフを一瞬にして作成するフェーズです。
表(資料掲載用)
資料に掲載しますので、ほとんどの表は帳票形式やクロス集計表形式になります。いわゆる人が見やすい表であり、整形されたデータ表とは異なります。
人が見やすいようにデータを配置しますが、Excelの行と列の組み合わせですので、VBAを使えば簡単に配置できます。
もちろん、不意なデータの追加や修正などが入っても、一度コードを組めばデータを差し替え、実行するだけで修正が一瞬にして終わります。表のレイアウトの変更についても、VBAコードの行番号と列番号を修正するだけの簡単な修正で済みます。
グラフ
グラフを描画するには、グラフの元になるExcel表を準備しますよね。VBAコードにより、整形前データをそのExcel表へ出力すれば、同時にグラフが完成します。
もちろん、不意なデータの追加や修正なども、前項の表で説明したとおり、VBAを使えば簡単です。
Access連携(応用編)
図の下部になります。自分の元に集めたデータが増えてくると、その管理が大変になります。たとえばもらった個人持ちExcelファイルや、システムからのcsvファイルやテキストファイルなどをそのままフォルダへため込んでいるような場合です。
とくに非定常で緊急な問い合わせや資料作成で、しばらく使ってない過去のデータを探すこともあります。すぐに見つかればよいのですが。。。
ときとして、これがなかなか見つからず、思わぬ時間を浪費することもあります。最悪は、過去一度集めたにも関わらず、再び個人ファイルを要請したり、システムからcsvファイルやテキストファイルを出しなおすこともあり得ます。
Accessをデータの箱として使えば、上記のような問題に直面することが無くなります。Accessはデータの管理が得意ですので、テーブルとクエリさえ使えれば、前述の問題にも十分対応できます。
SQL
SQLは、データベース上のデータを管理するために使用する言語です。VBAとは別の言語で、AccessのほかにOracleなどの一般的なデータベースにも使われる有名な言語ですが、VBA集計業務に使うSQLについての深い知識は必要ありません。
VBA集計業務では、整形後の資料の元ネタをExcelからAccessへ転送する際に使います。また、Accessから各種資料に必要なデータを抽出し、Excelへ転送する際に使います。
ただ、いづれにしてもパターンは決まっていますので、一度慣れてしまえばいつでも集計業務に利用することは可能です。
クエリ
Accessに備わっている強力なデータ抽出機能です。VBA集計作業では、基本的な使い方ができれば、前述のSQLと併せて複雑なデータ抽出も可能になります。
VBA集計技に必要な知識は多くない
以上、VBAを使った集計業務について、わたしの経験をベースにお話ししました。少しイメージして頂けましたでしょうか。
AccessやSQLなど、VBA以外の聞きなれないものが出てきましたので、少し心配になってきたかもしれませんね。
ただ本サイトでご紹介するVBAコードをはじめ、SQLやAccessに関する知識は、基本的なものばかりです。なんといっても、非IT企業にいたわたしが、10年間の集計業務で身に付けたものですので、誰でも扱えると考えています。
しかも一旦習得してしまえば、会社内のいろいろな部署で使えるスキルですので、Windows環境でさえあれば活躍の場が広がりますよ。
ということで、集計業務で使うAccessについて、もう少しお話ししたいと思います。
Access連携技でさらに仕事の幅が広がる
わたしがVBAを集計業務に取り入れ始めてから3年くらい経過したころ、Excelだけでデータ管理をすることに限界を感じていました。集めたデータが増えるにつれ、資料に必要なデータ探しやデータ抽出作業にかかる時間が増えてきたのです。
扱うデータ量にもよりますが、その時のわたしはExcelだけでのVBA集計業務に限界を感じていました。会社にプリインストールされていたAccessを使ってみようと考えたのはその時でした。
Accessを単なるデータの入れ物としてだけに使うので、Accessの広い知識は不要
Accessは、Excelよりも膨大なデータ量を軽快に扱えるうえ、データの蓄積・抽出・分析管理も優れていますので、VBA集計業務においてもAccessを扱えれば、一段とデータ処理能力が上がり、活躍の場が広がります。
確かに、Accessにはテーブル、クエリ、フォーム、レポートなど、Excelとは全く異なる機能が多くあります。
でもご安心ください。本ブログで紹介するAccessの機能は、テーブルとクエリの基本的な機能だけですので、Accessの難解なフォームやレポートを覚える必要はありません。
さらにAccessは、Excel同様マクロやVBAの機能も備えていますが、これらも使いません。
Accessをデータ管理役に、Excelを表・グラフなどの役に使い分け
Accessにデータ管理をすべて任せることで、Excelはデータ解析と表・グラフ作成専門として軽快に使うことができるようになります。
わたしの経験では、Accessにデータを蓄積することで、個人や基幹システムに対するデータ収集作業 (図の左側の業務) も少なくなりましたので、上司からの依頼に対するレスポンスも早くなりました。
このように、一人で大量のデータを扱えるようになるうえ、VBAも使えますので、Excel表・グラフの切り口(アウトプットのバリエーション)を簡単にレスポンスよく提案することもできるようになります。
わたしも当時の上司に、いろいろな切り口で提案しやすくなったり、逆に上司からいろいろと資料を頼まれることも増えました。さらに、周囲の同僚とのデータコミュニケーションの機会が増えたのも事実です。
まとめ
VBA集計業務のスキルを身につけることで、どんな可能性があるかを自身の経験をベースにお話ししてきました。最後に、本ブログの目指すところをお話しして今回は終わりにしたいと思います。
多くの人にデータ処理技術(取り扱い量、処理スピード)を向上させてもらいたい
ビックデータや、AIなど、ITの技術革新のスピードが上がるにつれて、わたしたちの仕事でも、個人が取り扱うデータ量は増え続けると考えられます。当然、個人で処理してアウトプットできる、データ量とスピードも求められるようになります。
そのようなとき、Excelだけの基本機能に加えて、VBAやAccessなどを使いこなせる人材が多くなれば、結果的に組織の意思決定スピードも向上すると考えられます。
詳細で丁寧な解説をすることで、多くの人がVBAを身近に感じられるサイトを目指します
本ブログは、VBAをこれからはじめる方を対象に、実務で使える集計業務スキルを紹介するものです。内容については、難解なコードは避け、基本的な内容を丁寧に詳細に紹介したいと思っています。