VBAフレームワークの選び方。メリット・デメリットの比較をふまえて解説!

VBAフレームワークの選び方。メリット・デメリットの比較をふまえて解説!

>

VBAとは?

Microsoft BASIC。マイクロソフトが世に知られるきっかけとなった製品です。Microsoft BASICでプログラミングを知ったという方も大勢いらっしゃることでしょう。発売は1975年でした。

その後、マイクロソフトのプログラム開発製品Visual Studioの一言語としてVisual BASICとなり、さらに同社の主力製品の一つになったMicrosoft Officeにカスタマイズ用言語として搭載され、Visual BASIC for Applications、略してVBAとなりました。

Microsoft Officeに含まれているアプリケーション群、Word、Excel、Power Point、Accessなどは、今やビジネスにはなくてはならないツールです。

Microsoft Officeさえあれば誰でも利用できるので、VBAは定型業務の自動化などに大活躍しています。特にExcelでよく使われているのはご存知のとおりです。

入門書や解説書、さらにリファレンスに至るまで、本も数多く出版されているだけでなく、ネットにも膨大な情報が公開されているので、プログラミング入門にも適しており、独学で勉強することも可能です。

VBAのフレームワークとは?

VBAは独立したプログラミング言語ではなく、Microsoft Officeの組み込み言語であり、Microsoft Office各アプリケーションとは切っても切れない関係にあります。

Word、ExcelなどMicrosoft Officeの各アプリケーションは、ビジネスの現場において個々人が自分の仕事に使うデスクトップアプリケーションです。

このため、VBAで作ったアプリケーションは個人の仕事を効率化するのが目的の大半で、不特定多数の人が同時に使うアプリケーションや、複雑な大規模アプリケーションというのはまず見当たりません。

一方で、Java、Ruby、PHPなどの言語は、いろいろな目的に使われ、アプリケーションの規模も大小様々です。こうしたプログラミング言語においては、WEBアプリケーションなど特定目的のアプリケーションを多人数で効率よく開発するためのフレームワークが存在します。

VBAでもフレームワークは存在しますが、特定目的のアプリケーションを開発するためのものは見当たらず、テスト用のフレームワークが多いようです。

また、Java、Ruby、PHPなどの言語におけるフレームワークは、オープンソースで提供されているものが少なくなく、コミュニティもあって活発な議論がなされていますが、VBAのフレームワークは、個人が作成して公開しているものが多く、コミュニティも見当たりません。

なお、VBAとフレームワークをキーワードにネット検索をすると検索結果に必ず出てくるのが「.NET Framework」です。これは、Windows環境下におけるプログラムのランタイム実行環境です。本コラムで扱う「フレームワーク」とは意味合いが異なるので注意が必要です。

VBAのフレームワークを使うメリット

テスト用フレームワークの活用という観点で見れば、VBAで作成したプログラムのテストを効率よく行うことができるというメリットがあります。

テストを効率化できるということは、バグ出しも効率化できることを意味し、セキュリティホールにつながるソフトウエア脆弱性の少ないアプリケーションを作成することができるでしょう。

VBAのフレームワークを使うデメリット

まず、VBAそのものの使い方を習得することに加えてフレームワークの使い方を学ばなければなりません。日常業務の合間を縫ってVBAアプリケーションを開発している、という人には無視できないデメリットになるでしょう。

また、VBAのフレームワークは個人レベルで提供されているものが多いことは前述のとおりですが、アップデートやメンテナンスが継続して行われるかどうかわからない、という不安があります。

また、コミュニティがあるほど一般的になっているフレームワークもなさそうなので、わからないことが出てきたときのサポートも期待薄でしょう。外国製のものは当然ながらドキュメントが英語なので、使い方などを調べるに当たっては、英語に取り組む覚悟が必要です。

VBAのフレームワークの種類

Excel VBA Framework

VBAには珍しい汎用のフレームワークです。個人(日本人)作成のフリーソフトとして公開されています。開発者によると、開発の効率化、保守性・拡張性の向上が特長であるとのこと。

機能の共通化、コードの一部自動生成によって開発の効率化をはかり、ワークシート入出力やメッセージ出力を集約し、スキーマ定義やメッセージをコードから分離して保守性・拡張性を高めています。

VbaUnit

初のテスティングフレームワークといわれているSUnit(Smalltalk用)は後に様々な言語に移植されました(総称してxUnitと呼ばれます)。作者によれば、その内のJUnit(Java用)を参考に作られたのがVbaUnitです。

テストのためのクラスを大量にインポートしなければならず、テストしたいクラスがわかりにくくなる欠点があります。

VB Lite Unit

作者によると、VB/VBA用の信頼性のある軽量なテスティングツールです。ActiveXのコンポーネントを登録して利用するスタイルで、結果はGUIで表示されます。

テストプロジェクトがすっきりしていますが、公開されているドキュメントでは使い方がわかりにくいのが欠点といえます。

xlUnit

xlvbadevtoolsで公開されています。残念ながら、ドキュメントがあまりありません。使い方はxUnitに似ています。コードメトリクス(品質測定)ツールが同包されています。

VBAのフレームワークのトレンド

VBAを用いたアプリケーション開発では、必要を感じた個人がほそぼそとフレームワークを作って公開している程度で、他の言語のようにフレームワークが重要視されることはそれほど多くないようです。

VBAのフレームワークの選び方

VBAには、RubyのRuby on Rails、PerlのCatalyst、PHPのSymfonyといったようなメジャーなフレームワークは存在しません。VBAのフレームワークはいくつか存在しますが種類も多くありません。

一方で、VBAそのもの使い方やノウハウに関しては書籍はもとより、ネットの情報もふんだんにあります。さらには有料・無料のセミナーも数多く開催されています。

VBAを用いた開発においては、自分にとって有用なフレームワークがあれば比較検討した上で採用し、それ以外は書籍やネットで必要な情報を得るようにするとよいでしょう。

まとめ

VBAはれっきとしたプログラミング言語ではありますが、Microsoft Officeに組み込まれた言語で、開発環境としては、ソフトウエア開発の現場で広く使われるソフトウエアフレームワークが一般的になっているとはいえません。

しかしながら、VBA案件で仕事しようとしているフリーランサーであれば、VBAにどのようなフレームワークがあって、どのような利点、欠点があるかを把握しておけば、スキルの幅を広げてくれることにつながり、案件獲得の際に有利になるでしょう。


登録フォームボタン
登録フォームボタン

SHAREこの記事をシェアする

admin