Excel業務の自動化に向けて 〜概要・事前準備〜

Micro Officeの操作について、自動化できることを皆様ご存知でしょうか?

Microsoft社は、Officeの拡張機能としてVBA (「Visual Basic for Applications」の略) というプログラミング言語を提供しており、当該言語で処理を記述することによって、自動化が可能です。本ブログにおいては、Excelを例に整理します。

開発環境の準備

Excelには、VBAを用いて開発を行う環境が標準で整備されています。しかし、開発タブは初期設定の段階では表示されていないため、当該タブを表示させる必要があります。

まず、ファイルタブから「オプション」を選択します。すると、下画像のような画面が表示されるため、「リボンのユーザー設定」タブをクリックし、チェックされていない「開発」の項目にチェックを入れます。 【赤囲いの箇所】

開発に向けた準備はたったこれだけです。

VBAで出来ること

VBAは、既存の画面上で出来る操作 (例:フォントを変える、セルに値を入力する等) は全て可能です。さらに、画面上の処理を超えて、以下3つのことが大きく可能です。これらのことを組み合わせて、自動化を図っていくことが多いと思います。

条件分岐

セルの値が空白である、又は一定の値を超えている場合等、特定の条件下において処理を行うことが可能です。

多くは、VBAを用いることなく、関数等で代替可能なことも多いかもしれませんが、例えばセルの色が赤色で行のみ非表示にする等は、関数では代替できない処理です。

繰り返し処理

決められた回数、又は特定の条件下にある限り、繰り返し処理を行うことが可能です。基本的に、ホームページから欲しい情報をExcelファイルに書き出す、もしくは条件分岐と併せて活用することが多いです。

別アプリケーションやファイルの操作

Micro Officeファイルを開いたり、保存したり等、ファイルの操作を行うことが可能です。

また、Excelファイルを超えて、Internet Explorer等の別アプリケーションを操作することも可能です。ウェブスクレイピングやクローリングはPythonの方が、整備されているライブラリの関係上、正直やりやすい部分もありますが、VBAを用いることでも可能です。

終わりに

本稿では、VBAで出来ること、及び自動化を図っていくための準備作業について整理しました。これからは具体的な構文や、変数や配列等について、書いていければと思います。

ここ最近プログラミング言語を勉強していて思うのですが、基本的に覚えるべき処理や、プログラミングにおける考え方は言語を問わず、共通している部分が多いです。

他言語と比べて、準備の手間もほぼないVBAでプログラミングの基本を学ぶことは、手軽で良いと考えるため、是非手を動かしながら覚えていただければ幸いです。