Excelの自動化で何が楽になるのか

Excelの自動化は部分的な手順の自動化から、ひとつのまとまった処理の完全な自動化までいろいろな適用範囲がありますが、どのレベルであれ手作業と比べた場合、以下のような効果があります。

ファイルの選択、シートの印刷などにおける条件選択の省力化
同じ条件でファイルを選択したり、シートを印刷するのであれば、必要な選択条件をまとめてプログラム化すれば、毎回手入力で同じ条件を選択する必要がなくなり、効率化が図れます。
大量のデータの分類を確実に行う
Excelは強力な分類(ソーティング)機能を持っていますが、手作業でソーティングする場合、ソーティングする範囲の選択を誤ってソーティングした行とソーティングしなかった行が入り混じってデータを壊してしまったり、ソーティングのキーにした列のデータに見た目では分からない空白文字が混じって、予想外のソーティング結果になったりすることがあります。 プログラミングでも同じソート機能を使うのですが、ソートを実行する前にソート条件を一つ一つ具体的に確認できるので誤りないソーティングが行えます。
画面の拡大・縮小、移動などの煩雑なマウス操作の削減
大きなシートを扱うような作業では、マウス操作によるウインドウの表示状態の変更が繰り返されます。シートの中で確認したい個所が決まっていれば、そこに焦点を当てたビューを登録するプログラムを作れば、ビューの切り替え指示だけでウインドウ表示の変更が可能です。
入力を簡略化し、ミスを防止
専用メニューを作ればキー入力の代わりに入力済みの数値や文字列を表示し、それを選択することでタイプミスを防止することができます。

表計算

表計算ソフトを初めて実用化したのはアップル社のLisa(リサ)でした。多分1980年代中ごろのことだったと思います。スティーブン・ジョブズがAppleIIの成功で得た利益をつぎ込んで開発した、斬新なパソコンでした。表示を拡大しても文字の輪郭がジャギー(階段状)にならず、常になめらかな輪郭が表示されるトゥルータイプ・フォントとプログラミングをしなくても集計から技術計算までユーザーが自身で行える表計算を売り物にしていました。
どちらも文字情報ベースのそれまでのコンピュータ処理を変革する新しい技術でした。そしてほどなく、これらはパソコンの標準機能になり、パソコンをより身近なものにしました。特に表計算は仕事の場面ではほとんどの人が何らかの形で利用しているでしょう。表計算以前には、どんな単純な計算でもプログラム言語を使ってプログラムを組み、それを実行しなければなりませんでした。表計算はこのプログラミングという作業をユーザー自身の容易な操作で可能にしました。
しかし、この表計算も処理が複雑になったり、扱うデータ量が増えてくると人為的なミスによりデータを壊すなど、弱点・限界があります。これから紹介するVBAはWindowsが標準で(新たな費用を払わなくても)もっているプログラミング言語(Visual Basic for Application:ビジュアル ベーシンク フォー アプリケーション)で、Excelの中で特定の処理を自動化するプログラムを作る事が出来ます。
プログラミングをしなくても良い表計算、なのにまたプログラムに戻るのか?
と思われるかと思いますが、VBAは従来のプログラム言語と異なり表計算(Excel)の限界を越えて、複雑な処理でもミスなく、大量のデータでも手作業に比べ格段の速さで処理してくれますから、VBAを活用すれば日々の仕事をより楽に、効率化することが出来ます。

VBAの利点・欠点

VBAを使う事は結局プログラムを作る事なので、慎重に行わなければいけません。無理な使い方、性格に合わない使い方は禁物です。
VBAを使う目的は楽になる事ですから、その利点・欠点を理解して、要領良く使いましょう。

Excel VBAの利点
- 計算処理にはExcel関数が使える
- Excelマクロを使って、やりたい事の実現手法の参考をその場で得る事が出来る
- コマンドの豊富な解説がインターネットを検索すれば無料で即、手に入る
- ユーザーインターフェースを容易に作る事が出来る
- 手作業では大変な大量のデータ処理でも、VBAによる自動化で大幅な時間短縮が期待できる
- 数式処理だけでなく、セルの色付けなどプロパティの操作で処理結果の分析表示が出来る
- プログラムで関係を定義し、プログラムの実行で直接値を代入する事により手作業による誤りの原因になりやすい、リンクを多用しなくても良くなる
- Excelシートとの組み合わせで、処理ロジックとデータ、パラメーターの分離が容易に出来る。
- Excelシートと組み合わせ、プログラムとドキュメントを一括管理できる
- 面倒な日付操作、文字操作が関数を利用して自動化できる
- デバッガが使える
Excel VBAの欠点
- たくさんの表を関連付けた処理が出来る反面、一度に操作できるのは一つの表だけなので、今操作している表を見失わないようにしなければならない
- 扱えるデータの型が豊富だが、型の違いを意識しないとエラーになる
- エラーメッセージが分かりにくい
- 機能がたくさんあり、基礎の習得に時間がかかりそう。

三つのポイント

VBAの利点を踏まえ、仕事の自動化のポイントは

  1. 処理ロジック
  2. ファイル操作
  3. ユーザインターフェース

処理ロジックとはExcelのどこのセルと、どこのセルを掛けて、どこのセルに書く、といったやりたい事自体の定義です。これは自分自身が決めれば良い事ですが、本当にやりたい事を出来るだけシンプルに定義するよう注意します。今どうやっているかにとらわれすぎると、現状のムダをそのまま自動化したり、例外処理ばかり多い非効率な自動化を行うことになります。
次はファイル操作です。入力データは処理の途中で手入力するのではなく、事前にExcelを使ってミスのないデータを作成しておき、プログラムの初期処理で一気にそのデータを読むようにして誤りなく、効果的にデータの入力を行います。実際の処理は、同時に開いているブックの中から入力ブックをアクティブにして、そのブックの中の目的のシートをセレクトして、入力データを読む、という流れになります。
このように処理の中では必要なブック、そのブックの中の必要なシートを事前に決めておく必要があります。せっかくExcelを使っているのですから、Excelの中にその入力ブックはXXXXだというように書き込んでおくと良いでしょう。こうすれば処理とデータの切り分けができ、プログラムの中では特定の名前のブックではなく、入力ファイル、出力ファイル、使うのは顧客住所シートといった具合の一般化した名前で取り扱う事が出来ます。 さらに、これにより使うブックが変わってもプログラムを変更することなく、プログラムに書いた入力ファイルの名前を変えるだけで処理を対応させることが出来ます。
最後がユーザーインターフェース(メニューやメッセージウインドウ)です。VBAにはUserForm(ユーザフォーム)という強力なユーザインターフェース作成ツールがあります。これを使えばWindowsを使っているときとほとんど変わらないユーザインターフェースが実現できますが、一般の処理では入力と出力を決めれば十分なので、まずはExcelシートに必要な指定を書き込んでおく方法で十分でしょう。
面倒な事を自動化して楽をする。
これが目的ですから、見栄えより実益、まずは目的を実現する事に集中しましょう。

1 2

 

このサイトは個人生活を健やかに、愉しく、 企業活動を闊達にして、 持続可能な社会作りを目指します
Copyright © しなやか暮し研究所 2012 All Rights Reserved.