ゆんの業務改善ブログ

①生産性向上 ②業務改善 ③自動化 について情報発信しています。VBAプログラムは本当の初心者から他のアプリケーションを呼び出して使う上級者的な使い方まで幅広いレベルで解説していきます。

Excel VBA|業務改善関連用語事典

業務改善関連用語事典は業務改善に関連する用語を解説する事典です。業務改善に役立つ知識を解説をするという切り口で説明します。

目次

概要

Excel VBA(エクセル・ブイビーエー:Visual Basic for Application)とはエクセルアプリケーションに付随しているVBEという開発環境で開発実行するプログラミング言語です。ルーツはVisual Basicに持っており、エクセルを操作するための言語という位置づけとなっています。

特徴

もともとエンジニアがアプリケーションを開発するための言語ではなく、事務職の人が少し勉強するだけで業務が自動化できる、と言うような位置づけのプログラミング言語の為、直感的に理解しやすい文法となっています。リファレンスや日本語での参考文献も多いため、学習コストは低く、非常に取り組みやすいプログラミング言語と言えます。

また、プラットフォームであるエクセルが普段業務で使用しているアプリであることから、自動化プログラムを書く際にどのような作業を自動化するのかのイメージがわきやすくとっつきやすいという特徴があります。

エクセルの為のプログラミング言語でありながら、OLE、APIといった技術を利用することにより、エクセル以外のアプリケーションを動かすことも可能となっており、Excel VBAでできることの範囲は多岐にわたっていると言えます。

なお、Microsoft社による公式リファレンスによると下記のようにVBAが非常に強力な言語であることが説明されています。

(前略)
Office での VBA プログラミングの強力な機能は、VBA を使用して、マウス、キーボード、またはダイアログボックスで実行できるほぼすべての操作を自動化できるということです。 さらに、VBA を使用して実行できるようになった操作は、簡単に 100 回繰り返すこともできます 実際、反復タスクの自動化は、Office での VBA の最も一般的な使用法の1つです。
VBA では、日常の作業を効率化するだけでなく、Office アプリケーションに新しい機能を追加したり、それぞれのビジネス ニーズに合わせた方法でドキュメントのユーザーに操作を促したりユーザーと対話したりすることもできます。 たとえば、文書の初回保存時には、特定のネットワーク ドライブに保存するように指示するポップアップ メッセージを表示することも、VBA コードを作成して実行できます。

出典:Office Visual Basic for Applications (VBA) リファレンス | Microsoft Docs

言語仕様

オブジェクト指向

オブジェクト指向のプログラミング言語です。ブックやシートといったすでに底にあるオブジェクトについてはクラス名とオブジェクト名が同じ仕様となっています。また、それらはすでに底にあるオブジェクトであるため、インスタンスを制止しなくても使えるという特徴があります。

一方で、ユーザーが自分でクラスを作成することもでき、クラスとプログラムの処理を分離するいわゆるオブジェクト指向のプログラミングを行うことができます。しかしVBAのクラスは隠蔽化の機能はあるものの、継承などの高度な機能は持っていません。

変数の型

変数は宣言することもできますが、強制ではありません。変数を宣言しない場合、変数の型はVariant型となります。そのため、動的型付けではありません。また変数を宣言する場合でも変数の型を省略することもでき、変数の型を宣言することもできます。変数の型を省略した場合はVariant型となります。変酢の型を宣言すると、その後変数の型を省略することはできません。しかし、文字列として代入しても数値とみなせるときは数値とみなすというルールがあるため、文字列として2と3を変数に格納し変数同士を+でつなぐと23とはならず、5が出力されます。

なお、変数の宣言を強制することもできます。変数の宣言を強制する時は冒頭にOption Explicitを記述するのですが、VBEのツール⇒オプションで「変数の宣言を強制する」のチェックボックスにチェックを入れることで、自動でOption Explicitが挿入されるようになります。