Excelの自動化は部分的な手順の自動化から、ひとつのまとまった処理の完全な自動化までいろいろな適用範囲がありますが、どのレベルであれ手作業と比べた場合、以下のような効果があります。
表計算ソフトを初めて実用化したのはアップル社のLisa(リサ)でした。多分1980年代中ごろのことだったと思います。スティーブン・ジョブズがAppleIIの成功で得た利益をつぎ込んで開発した、斬新なパソコンでした。表示を拡大しても文字の輪郭がジャギー(階段状)にならず、常になめらかな輪郭が表示されるトゥルータイプ・フォントとプログラミングをしなくても集計から技術計算までユーザーが自身で行える表計算を売り物にしていました。
どちらも文字情報ベースのそれまでのコンピュータ処理を変革する新しい技術でした。そしてほどなく、これらはパソコンの標準機能になり、パソコンをより身近なものにしました。特に表計算は仕事の場面ではほとんどの人が何らかの形で利用しているでしょう。表計算以前には、どんな単純な計算でもプログラム言語を使ってプログラムを組み、それを実行しなければなりませんでした。表計算はこのプログラミングという作業をユーザー自身の容易な操作で可能にしました。
しかし、この表計算も処理が複雑になったり、扱うデータ量が増えてくると人為的なミスによりデータを壊すなど、弱点・限界があります。これから紹介するVBAはWindowsが標準で(新たな費用を払わなくても)もっているプログラミング言語(Visual
Basic for Application:ビジュアル ベーシンク フォー アプリケーション)で、Excelの中で特定の処理を自動化するプログラムを作る事が出来ます。
プログラミングをしなくても良い表計算、なのにまたプログラムに戻るのか?
と思われるかと思いますが、VBAは従来のプログラム言語と異なり表計算(Excel)の限界を越えて、複雑な処理でもミスなく、大量のデータでも手作業に比べ格段の速さで処理してくれますから、VBAを活用すれば日々の仕事をより楽に、効率化することが出来ます。
VBAを使う事は結局プログラムを作る事なので、慎重に行わなければいけません。無理な使い方、性格に合わない使い方は禁物です。
VBAを使う目的は楽になる事ですから、その利点・欠点を理解して、要領良く使いましょう。
VBAの利点を踏まえ、仕事の自動化のポイントは
処理ロジックとはExcelのどこのセルと、どこのセルを掛けて、どこのセルに書く、といったやりたい事自体の定義です。これは自分自身が決めれば良い事ですが、本当にやりたい事を出来るだけシンプルに定義するよう注意します。今どうやっているかにとらわれすぎると、現状のムダをそのまま自動化したり、例外処理ばかり多い非効率な自動化を行うことになります。
次はファイル操作です。入力データは処理の途中で手入力するのではなく、事前にExcelを使ってミスのないデータを作成しておき、プログラムの初期処理で一気にそのデータを読むようにして誤りなく、効果的にデータの入力を行います。実際の処理は、同時に開いているブックの中から入力ブックをアクティブにして、そのブックの中の目的のシートをセレクトして、入力データを読む、という流れになります。
このように処理の中では必要なブック、そのブックの中の必要なシートを事前に決めておく必要があります。せっかくExcelを使っているのですから、Excelの中にその入力ブックはXXXXだというように書き込んでおくと良いでしょう。こうすれば処理とデータの切り分けができ、プログラムの中では特定の名前のブックではなく、入力ファイル、出力ファイル、使うのは顧客住所シートといった具合の一般化した名前で取り扱う事が出来ます。
さらに、これにより使うブックが変わってもプログラムを変更することなく、プログラムに書いた入力ファイルの名前を変えるだけで処理を対応させることが出来ます。
最後がユーザーインターフェース(メニューやメッセージウインドウ)です。VBAにはUserForm(ユーザフォーム)という強力なユーザインターフェース作成ツールがあります。これを使えばWindowsを使っているときとほとんど変わらないユーザインターフェースが実現できますが、一般の処理では入力と出力を決めれば十分なので、まずはExcelシートに必要な指定を書き込んでおく方法で十分でしょう。
面倒な事を自動化して楽をする。
これが目的ですから、見栄えより実益、まずは目的を実現する事に集中しましょう。