表計算ソフトとしておなじみのMicrosoft Excel。単純な計算だけでなく、さまざまな関数を使って計算を自動化したり、詳細なグラフを作れたり、とても便利ですよね。
実はそんなExcelには「VBA」というもっと便利な機能があります。
VBAは作業を自動化させるプログラミング機能
VBAは「Visual Basic for Applications」の略称で、簡単にいえばExcelの作業を自動化するプログラミング機能のことです。
「Excelの自動化機能といえば、マクロでしょ?」と思う方もいるかもしれません。Excelに作業を記録させ、後から同じ作業をするときに使えるのが「マクロの記録と再生」機能ですが、そのマクロ自体がVBAで書かれているのです。
そのため、VBAが使えるようになれば、マクロの記録機能よりもずっと柔軟で多彩な自動化ができます。
VBAでできる便利なコト3つ
それでは、VBAの便利さがわかる事例を3つ紹介しましょう。
ボタンひとつでセルやシートの操作が一発完了
VBAで書いたマクロは、セルやシートの操作を一瞬で完了させられます。
例えば、支店名が混在している売上表があります。これを支店ごとに別のシートに分けて売上を転記したいとき、どんな方法があるでしょうか。
支店名でフィルターをかけて抽出されたデータを別のシートにコピーするのもひとつの手ですが、大変な手間がかかかります。
VBAで適切なプログラムを組むと、データの種類によってシート分けをする機能を作成できます。
こちらの画像はユーザーが入力した支店名と一致するデータを、新規シートに転記する様子です。VBAで作成したシート分けの機能は青いボタンを押すことで実行できるようにしました。
ボタンを押すとインプットボックスが表示され、そこに入力した支店名ごとにシートを分ける仕様になっています。
まずは「青山」とインプットボックスに入力し「OK」ボタンを押してみると、プログラムの内容に従い「青山支店」のデータだけが別シートに転記されました。
ユーザーフォーム機能でWebページのような入力ボックスを作れる
VBAを使うとExcel上にユーザーフォームを設置できます。
ユーザーフォームにテキストボックスやリスト、ラジオボタンを配置すれば、入力作業を簡略化できます。例えば、以下の画像のようなユーザーフォームを作って新規会員の表を作る事が可能です。
こちらのフォームにユーザー情報を入力して、「登録」を押すと
各情報がExcelの表に自動入力されます。
別のオフィスソフトとの連携も可能
Microsoft OfficeにはExcel以外にも、WordやPowerPointなどのアプリケーションがありますが、いずれのアプリケーションにもVBA機能がついています。
さらに、ひとつのアプリケーションから別のアプリケーションをVBAによって操作することも可能です。例えばExcel内のVBAを使って、WordやPowerPointのファイルを新規作成し、Excel上の表データを貼り付けるという作業も自動化できます。
VBAはプログラミング入門に最適
プログラミング言語はたくさんありますが、各言語に合わせた実行環境を用意するのは結構大変です。しかし、VBAならMicrosoft Office上で実行できるので、手軽にプログラミングが楽しめます。
興味を持った人は、一度VBAに挑戦してみてください。
VBAが学べるサイト
「エクセルの神髄 マクロVBA入門」 https://excel-ubara.com/excel_vba1.html