プログラミング言語VBAの特徴【Excelだけじゃなく実はいろいろできる】

Excelエクセルを業務で使う職場で働いている人なら、上のような自動処理ボタン(マクロボタン)を見たことがあるかもしれません。

このようなボタンを押すと、Excelの自動処理が始まります。そのときに裏側で動いているのがVBAプログラムです。

VBAとは

VBAは「Visual Basic for Applicationsアプリケーションズ」の略です。Microsoftマイクロソフト社が開発したプログラミング言語Visual Basicを、Office製品のマクロ環境として実装したものです。

VBAのプログラミングは、Excelの自動処理くらいのプログラムであれば習得は難しくありません。VLOOKUP関数を使っている人なら、同様のことを自動化できるものと考えるとイメージしやすいです。

セルに複雑な関数を入れて計算することに慣れている人なら、VBAの利用価値を感じやすいでしょう。

この記事では、VBAの特徴について解説します。

プログラミング言語の特徴【できること・得意分野を解説】

VBAの特徴

  • Office製品のマクロのためのプログラミング言語
  • Excelの開発モードでプログラム可能
  • ライブラリを使えば、Windowsファイルやウェブの操作も可能
  • プログラミング未経験者でも学習しやすい

VBAは、主にExcelで使われるプログラミング言語です。Office製品のマクロのために実装されている言語です。

Excelの開発モードでプログラミングすることができます。ライブラリ(またはドライバ、オブジェクト)もいくつか搭載されており、Windowsのファイル操作も行えます。

VBAをある程度使いこなせるようになると、…ファイルを開いて、CSVを取り込んで、セルの値を自動計算して、別のファイルにコピーして、元ファイルを閉じる…というような一連の作業をまるごと自動化することも可能です。

プログラミング未経験者でも学習しやすく、習得しやすい言語です。

業務中の手作業を大幅に改善できるので、会社での評価アップも期待できます。

マクロとVBAの違い

  • マクロ:コンピューターを自動操作する機能、その総称。
  • VBA:Office製品のマクロのために実装されているプログラミング言語。

「Excelのマクロ」とは、Excelで行う作業を自動化する機能のことを言い表しています。

そのマクロの実態がVBAというプログラミング言語ということになります。

さらにVBAはプログラミング言語なので、Office製品の枠を超えた制御プログラムを組むことも可能です。

VBAでできること

  • Excelの自動処理
  • Accessの自動処理
  • ファイル操作(コピー・移動・削除など)
  • データベース連携(MicrosoftSQLServerなど)
  • スクレイピング

VBAは、Excelで使われることが多いですが、実はライブラリのおかげで結構いろいろなことができます。

同じOffice製品であるAccessの操作はもちろん、Windowsのファイル操作も可能です。

また、ドライバを使ってデータベースと連携できるので、Excelのデータをデータベースに入れたり、呼び出したりすることもできます。

HTML用のライブラリを使えば、ウェブページに掲載されている情報を取得(スクレイピング)して、Excelシートに取り込むこともできます。ウェブ上の情報収集を自動化できるわけです。

株価や為替の値動き、競走馬の成績なんかも自動収集できます。

スクレイピングに使いやすい言語にPythonがあります。PythonはExcel用のライブラリを使ってExcelの自動処理プログラムを組むこともできます。

VBAの難易度

  • 開発環境:Excel(またはAccessなどOffice製品)
  • 型付け:静的(Variant型により柔軟)
  • コンパイル:不要
  • パラダイム:主に手続き型
  • 動作環境:ExcelほかOffice製品

VBAの難易度は、比較的易しいです。

日頃からExcelをよく使っていて、セルに関数を入れ子にするくらいの人なら、ExcelVBAの働きを理解しやすいでしょう。

Excelという身近なソフトウェアだけで学習できるため、環境構築は不要です。

プログラムは、処理を順番に上から記述していく手続き型が一般的です。

VBAのプログラミングでやや面倒に感じるのが、型付けです。慣れないうちは、開発中に型のエラーが続出します。型に慣れていくと、開発は容易になってきます。

型付けとは

プログラム中で扱う値をコンピューターに教える役割のことです。値が数字なのか文字なのか…など、値の型をプログラムのなかで決めてあげることを型付けと言います。

個人的には、型のエラーのせいで型の勉強になる点も含めて、VBAはプログラミングのよい教材だと感じます。

VBAはプログラミング初心者にうってつけ

VBAはプログラミング初心者にうってつけの言語です。プログラミング未経験者がプログラミング自体を学習するのにも適しています。

プログラムの処理結果をExcelのワークシートで確認できるので、理解しやすいからです。

まず最初に学習する言語としてもおすすめです。

私自身もVBAを習得したあとに、そのスキルでPythonを習得しました。

VBAの学習方法

VBAは独学でも可能です。

ウェブで調べながら学習することもできますが、何か1冊、参考書が手元にあると学習順序の指針になるでしょう。

この本は、プログラムにふりがなが付いている参考書です。ふりがなのおかげで、プログラムで何を処理しようとしているのかを理解しやすいため、初心者におすすめです。

VBAに興味がある人には、読み物としても面白いです。

まとめ

  • 業務でExcelを使う人なら、マクロボタンを見たことがあるはず。マクロボタンの裏側で動いているのがVBAプログラム。Office製品に実装されたマクロ機能のひとつ。
  • VBAのプログラミングは、Excelの自動処理くらいのプログラムであれば習得は難しくない。Vlookup関数を使っている人なら、同様のことを自動化できるものと考えるとイメージしやすい。
  • VBAは、Excelで使われることが多いですが、実はライブラリのおかげで結構いろいろなことができる。
  • HTML用のライブラリを使えば、ウェブページに掲載されている情報を取得(スクレイピング)して、Excelシートに取り込むこともできる。
  • VBAはプログラミング初心者にうってつけの言語。プログラミング未経験者がプログラミング自体を学習するのにも適している。
  • この記事を書いた人

non

小学生のときにBASIC言語でプログラミングを覚え、社会に出てからはPythonを主力に通信業界で無線設計とGISシステム開発に携わること12年目。プライベートではPHP・MySQLでウェブサービスを作りつつ、副業で収入を得ています。「プログラミングは人生を豊かにする」と実感しています。