EXCELの作業効率をアップさせるEXCEL VBAとは?

パソコン

多くの職場で当たり前に使われているMicrosof EXCEL。事務職を問わず、あらゆる職業でEXCELを扱えるスキルは必要になっています。しかし、数字を手作業で入力し、表やグラフを作るだけがEXCELではありません。実はEXCELには作業を自動化する「マクロ」というシステムが存在します。そして、その「マクロ」を自在に操れるのがEXCEL VBAというプログラミング言語なのです。

マクロとは?

マクロとは「同じ処理を繰り返し行うことができるEXCEL上の仕組み」と言えます。

例えば、ある店舗では毎日の売り上げをEXCELで管理しているとします。閉店時に仕入れ品の中から、価格が1000円以上のものは別のシートに書き写していきます。このような「同じ作業」はマクロを使って実行すると、ボタン一つで済んでしまいます。

また、マクロはEXCELだけでなくOutlookやWordなど別のオフィスソフトの操作を自動化することもできます。

マクロを使う方法は2つあります。1つはEXCELに標準装備されている「マクロの記録」という機能を使うことです。これはプログラミング言語を使わない誰でもできる方法です。

まずは、「開発」タブの中から「マクロの記録」を選びます。記録したいマクロの名前を入力してOKを選択すれば記録が開始されますので、自動化したい操作を一通り行います。操作が終わったら、「記録終了」のメニューを選択するだけです。あとはいつでも「開発」タブの「マクロ」から今記録したマクロを呼び出し、実行することができます。「マクロの記録」はビデオの録画機能のようなものです。実行することで記録時の操作をそっくりそのまま繰り返してくれます。

※「開発」タブは最初は表示されていません。「ファイル」タブ→「リボンのユーザー設定」→「メインタブ」の中の「開発」にチェックを入れると表示されるようになります。

しかし、「マクロの記録」は最初に記録した行動をそのまま繰り返すだけですので、柔軟なカスタマイズができません。例えばシートに行を追加するのはよくあることですが、記録の段階では存在しなかった新規行についてはデーターを扱えなかったりします。

EXCEL VBAはマクロの動作をより細かく設定できる

「マクロの記録」では一定の決まった動作以外を行うことができません。そこで必要となるのがマクロを使うもう1つの方法、EXCEL VBA(EXCEL Visual Basic for Applications)でのプログラミング知識です。

EXCEL VBAはマクロをより柔軟に扱うことができるプログラミング言語です。ループ処理、条件分岐など細かな命令を設定したり、フォームやドロップダウンリストなど使用者が入力しやすい形式にEXCELを作り替えていくことが可能です。

EXCEL VBAを使うには?

EXCEL VBAを使うためには、何か新しいソフトをダウンロードする必要はありません。EXCELには標準でEXCEL VBAを使う環境が整っています。

「開発」タブの中にある「Visual Basic」を選択すると、VBAを書き込むための画面「Visual Basic Editor」を起動することができます。この中に新しいマクロを動かすプログラムを書いていけばよいのです。

このように簡単にプログラミング環境が用意できるプログラミング言語は、実は稀です。普通プログラミングを行うにはいろいろなソフトをダウンロードしたり、サーバーを用意して環境を整える必要があります。そのため、プログラミングに興味を持っていても学習の入り口で挫折してしまう人もいます。

それらに対しEXCEL VBAはプログラミング環境の入り口がとても低くなっています。これからなんらかのプログラミングを始めてみたいという初心者にとってもお勧めなプログラム言語と言えるでしょう。

EXCEL VBAで自動化できる事務作業例

特定の行を探し出し、それを別のシートに転記する

EXCEL VBAを使うと、表の中から条件に合った行を探し出し、その内容を別のシートに転記することができます。ただ転記するだけではなく、項目を入れ替えたり、縦の表を横に作り替えたりすることも可能です。

例えば、ネット銀行では、取引履歴をEXCEL形式でダウンロードすることができますが、この取引履歴の中から一部の振込先のみを見つけ出し、「売上」という勘定科目で帳簿につけたい、という場合にEXCEL VBAでプログラミングをしていきます。もちろんEXCELのVLOOKUP関数やフィルター機能を使っても同じような作業はできますが、検索、抽出、転機を一瞬で終わらせることができるのはEXCEL VBAだけです。

ドロップダウンリストとチェックボックスで入力を簡単にする

EXCEL VBAの特徴の1つは、ドロップダウンリストやチェックボックスといった「フォーム」を利用できることです。「フォーム」によるEXCELのコントロールを行うことで、入力の手間が省け、EXCELの操作が苦手な人でも簡単にデータを操ることができるようになります。

例えば、チェックボックスにチェックを入れるだけである行の表示・非表示を切り替える、ドロップダウンリストから選んだ項目を自動的に表に追加するなど、フォームを使うことで「直感的かつ簡単な操作」が可能になります。

EXCELのデーターをWordに自動で転記する

EXCEL VBAを使えば他のOfficeソフトと連携し、データの受け渡しを自動的に行うことができます。EXCELのデータやグラフをWordで利用したい、PowerPointのスライドに貼り付けたいという場面はよくありますよね。このような時もEXCEL VBAでプログラムを組んでおけば、一瞬でデータを転記することができます。

WEB上の情報をEXCELに取り込む

EXCEL VBAはOfficeソフトと連携するだけでなく、WEB上の情報を操ることも可能です。WEBクエリという機能を使えば、WEBページに公開されている情報をEXCEL内に取り込むことができます。

※このようにEXCEL VBAが作るマクロにはネットに接続してデータを自分のパソコンに取り込む力があります。悪質なマクロなら、ネット上のウィルスをパソコン内にばらまくような操作も可能ということです。そのため、作成者不明のマクロは決して実行しないようにしましょう。

決まった形式で印刷をする

EXCEL VBAは印刷形式をプログラミングで指定することができます。複数人で作業している場合、印刷処理をする人によって改ページルールがバラバラだったり、縮尺が統一されておらず困ることはありませんか?またデーターが印刷用紙に収まりきらず、何度も印刷をやり直さなければならなかったという経験を持っている人も多いでしょう。

EXCEL VBAを使えばこのような悩みを解決することができます。EXCEL VBAで印刷の方法を規定したマクロを組めば、誰でも同じ印刷形式で書類をプリントすることができるようになります。EXCEL VBAで作成した自動処理(マクロ)は、ボタンを押すことで実行するように設定することができるので、EXCELの印刷が苦手な人もボタンを押すだけで決まった形式での印刷を行うことができます。より高度なプログラムを組むと、EXCELデーターの中から特定のものだけを抽出+印刷するという2つの動作を同時に行うことも可能です。

EXCEL VBAでスキルアップを

EXCEL VBAでプログラミングができるようになれば、事務作業は一気に効率的になります。ただEXCELが使えるというだけでなくEXCELを自動化できるスキルが身につけば、他の社員と差をつけることができるでしょう。デスクワークで活躍したいのなら、一度EXCEL VBAを学んでみてはいかがでしょうか。

参考文献『今日から使える Excel VBA 2013/2010/2007/2003対応』ソシム株式会社 立山英利著

 

※具体的な学び方を知りたい人はこちらの記事をご覧ください。

事務作業を時短で処理できるEXCEL VBAの具体的な学び方

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です