VBAでできること|可能性が広がる便利なプログラミング言語

公開日:2019年10月16日

VBAプログラミングが役立つこと

VBA(Visual Basic for Applications)とは、Visual Basicというマイクロソフトが開発したプログラミング言語をベースとし、Excel、AccessといったOffice製品内で実行可能なプログラミング言語です。

Excel操作の自動化ツール開発のために、事務作業で使用されることが多いです。

しかし、このVBAは調べてみるとExcelやAccess操作だけでなく、いろいろなことができます。

そこでこのページでは、VBAでできることについて、説明します。

1.Office製品の自動操作

代表的なOffice製品は、Excel、Accessの他、WordやPowerpoint、Outlookなど。

ExcelやAccessのVBAツールはよく現場で使用されますが、WordやPowerpoint、Outlookの自動化もできてしまいます。

手入力で操作できることの大部分が、VBAで自動化できてしまいます。

2.IEを使ったWEBブラウザ操作

VBAはおなじくマイクロソフトが開発したWEBブラウザであるIE(Internet Explorer)と相性抜群です。

他のブラウザでは実行できないWEB上の自動操作がVBAとIEの組み合わせで簡単に実現できてしまいます。

「WEBスクレイピング」という、WEB上の情報を抽出して収集する技術を、VBAは持ち合わせているということです。

WEBスクレイピングのツール開発では、Pythonと並んでVBAは人気のあるプログラミング言語になっています。

3.ドライブ、フォルダ、ファイル操作

Windows上のドライブやフォルダ、テキストファイルを操作できます。

例えば、フォルダ内のすべてのテキストファイルについて、同じ書き込みを実行したい場合や、サーバーの空き情報を調べたい場合など、VBAで自動実行ツールを開発できます。

4.データベース操作

Office製品であるAccess以外にも、Microsoft SQL ServerやOracleデータベース、MySQLなど、シェアの高い有名なデータベースソフトに接続し、SQL文との組み合わせでデータベース作成やレコード抽出、検索、挿入と削除など、データベース操作が可能です。

5.コマンドプロンプト、Powershellの実行

Windows上のシェルスクリプトであるコマンドプロンプト(cmd.exe)とPowershellのコマンドを実行できます。

イベントログの取得やWSUS操作、ネットワークコマンド実行など、VBAコーディングの実行では実現が難しいことで、シェルスクリプトでは簡単に実行できることはVBA上からシェルスクリプトを使ってWindowsに命令を出すことができます。

6.Windows APIを使った命令実行

Windows API(Windows Appkications Programming Interface)とは、Windowsシステムの機能にアクセスできる便利な関数のことをいいます。

非常にたくさんのWindows APIがあります。

Windowsシステムに近い操作を行いたい場合には、VBAからWindows APIを呼び出せば、実行できます。

例えば、キーボードのキーを押す操作や、ビープ音を鳴らす操作、時間測定をしたい場合などは、それぞれの機能を有するWindows APIを呼び出せばWindouwsが命令に従って実行してくれます。

7.HTTP通信

IEを操作すればWEB上の情報取得やフォームへの入力など、便利な操作が可能です。

しかし、IEを経由しての操作であるため、ページ移動の場合など、その都度IEのページ移動を待って操作するため、待機時間という余計な時間がかかります。

そこで、もし時間をかけずにWEB操作したい場合には、HTTPリクエストとレスポンスを行う専用のオブジェクトを使えば、実現できます。

8.レジストリ操作

セキュリティ上の設定やWindowsの高速化を実現したい場合に編集するものとして「レジストリ」があります。

レジストリクリーナーのソフトウェアで不要なレジストリを削除している方も多いと思います。

そのようなレジストリもVBA上から編集できます。

9.ソケット通信

TCP/IPという、HTTPより下のレイヤーを使ってネットワーク通信したい場合には、「ソケット通信」と一般に呼ばれるIT技術を使えば実現できます。

VBAでも「Winsock」と呼ばれるWindows上のソケット機能を呼び出せば、ソケット通信が可能です。

例えば、他のプログラミング言語が使用できない環境で、Excelに記述したIPアドレスにFTP(ポート21)で接続してWEBアップロードしたい場合などが該当します。

10.WEBサービスが用意したAPIを呼び出した操作

インターネットで検索すると、AmazonやTwitter、インスタグラム、GoogleスプレッドシートなどはVBAで呼び出せるAPIを用意しているようです。

例えば、Excelに登録した情報を使ってTwitterに自動投稿したい場合などに、VBAプログラミングでこれらのAPIを呼び出せば実現できるとのことです。

まとめ

以上、VBAでできることについて解説しました。

調べてみるとExcelやAccess以外にもWindows上での汎用性の高さを認識でき、改めてVBAの優秀さを知ることができました。

最後までお読み頂きましてありがとうございました。

Amazon Kindle Unlimited

10冊まで同時に読み放題の電子書籍サービス(200万冊以上が対象)。

PC・ITカテゴリーの対象数は7,000以上。

スキル、ノウハウ吸収や話題作りにと、ライフ・クオリティを高めてくれます。

関連記事

Topへ戻る