Microsoft Access Club >VBA物語 >このページ>次頁 < 前項  サイト内検索


VBAとは? : VBA物語01



VBAの正式名は、Visual Basic For Applicationといいます。Accessのみならず、Office製品にはこのVBAが備わっています。※Outlook Expressには残念ながら付加されていません。

VBA(Visual Basic For Application)

VBという開発言語を元に各アプリケーション用にカスタマイズされたプログラミング言語です。このプログラミング言語を用いて、Accessを おなた自身の好みに仕上げることができます。

VB(Visual Basic)

WindowsというOS上でアプリケーションの開発を可能にするプログラミング言語です。

Windowsはイベント駆動型

話が反れますが、WindowsのOSはイベント駆動型であると定義されています。このため、例えばアプリケーションの開発で印刷機能を備える必要があるときは、Windowsの印刷機能を呼び出すプログラムを記述するだけで事足ります。

これは開発者にとってメリットが非常に大きいです。そうでしょう?

以前のオフコン(汎用機)時代は、専用のプリンターやモニターが必要とされていました。特化したOS上では、プリンターやモニターを特定し、そして開発しなければならない時代でした。

AccessのVBA

ところで、AccessのVBAというと、これはWindowsというOS上でMs Access動かすように最初から設定されています。

例えば、フォームを開く、閉じるだとか、画面を再描写するとかいったものです。Accessのことだけを考えてプログラミング を構築できるように設計されています。

マクロ

ところで、マクロをご存知ですか?まさか、マクロも知らずに「VBAをマスターするんだ!」とお思いじゃないでしょうね?マクロはマスターしておいてください 。

このVBA物語では、マクロ機能はご存知であるということが前提になっています。マクロとは、Access内部でVBAに変換するように設計されたAccessの組み込み機能です。代表的な開く、閉じる、印刷する、終了する 、などのイベントを実行できます。

英語に譬えると、中学校ので習う単語や構文に似ていますね。日常の英会話には、この中学英語だけで充分であるとよく云われます。これと同じく、一般的なAccessアプリケーション開発では、マクロだけで充分です。

マクロとVBAの違い

マクロとVBAの最大の違いは何でしょう?

マクロの良さ
  1. Access側が用意したアクションを利用するだけなので事前準備が不要である。
  2. アクションを選択するだけでAccessを動かすことができる。
  3. 統一的な記述を行うため、第三者でも組み立て方を容易に理解できる。
  4. データベースの容量が増加しない。
マクロの弱点
  1. 基本的なマクロアクションしか用意されていない。
  2. 独自のアクションを作成することができない。
  3. 複雑な条件節を組み合わせた、階層的なフロー制御を行うことができない。
  4. エラー発生の場合、独自の制御を行うことができない。
  5. 第三者によるマクロの改ざんを防止することが難しい。
VBAの良さ
  1. 開発者が意図するAccess操作ができる。
  2. 複雑な条件節を組み合わせた、階層的なフロー制御を行うことができる。
  3. 独自のエラー処理を組み込むことができる。
  4. WindowsAPIを利用することで、より細かい制御を行うことができる。
  5. 第三者によるプログラミングの改ざんを防止することができる。
VBAの弱点
  1. プログラミングの基礎的な知識を必要とするため、初心者には敷居が高い。
  2. ステートメント、メソッド、アクションなどの機能取得に時間がかかる。
  3. はっきり言って難しい。

高度なアプリケーションの開発には、どうしてもVBAの知識が必要?

身近なものとして、家の玄関扉の施錠が壊れたとしましょう。

  1. ホームセンターへ自転車で駆け込んで、たくさんの種類から合致する施錠を探して購入します。しかし、残念にもサイズが合わないことが稀にあります。このような時は、自宅の玄関扉の施錠サイズに合うように加工しなければいけません 。
  2. このように加工を行うということが、VBAを用いるということです。
  3. 逆に、既製品の施錠を利用することが、マクロを用いるということになります。

マクロも捨てたものではない

しかし、施錠がご自分の玄関扉に合わなければ、それはそれでいいじゃないですか。玄関扉の上下に既製品の カギを設置すればいいことでしょ。表からは見えませんよ。

プログラミングするのがAccessの目的ではなく、Accessを自在に動かすために、皆さんは努力されていると思います。

VBAの解説書には、

  • テーブルデータを加工するにはVBAのレコードセットを用いる、いわゆるDAOやADOの出番です。

このような記述を目にします。

確かに、レコードセットをマクロで操作できませんが、テーブルデータの加工は何もVBAの独壇場ではありません、Accessで用意されているクエリを用いる方法 で対処可能です。

各種クエリの利用

Accessに組み込まれている、追加クエリ、削除クエリを用いたり、テーブル作成クエリを用いて新規テーブルを作成したりと、いろいろ な手段があります。そして、マクロからこれらクエリを呼び出すことで、プログラミング不要なAccessソフトを作成することも可能です。

しかし、これは可能というだけであって、例えば、海外に赴任する場合には中学英語だけでは不安でしょう。これと同じで、 マクロよりカバー範囲の広いVBAを学ぶに越したことはありません。

  • マクロプログラミング : 中学英語
  • VBAプログラミング : 高校英語

方針

このVBA講座では、VBAに親しめるようにチョット変わった進み方を用います。Access2003を 元に気楽に進めていきます。この講座で、貴方のVBA知識が少しでも深まれば幸いです。

2004/03/30

ページの先頭へ 前ページへ戻る

 


VBAとは? : VBA物語01


-Microsoft Access Club-

PLESKコンパネ管理者用の操作手順情報を発信しています。
Parallels社PLESKコンパネ管理者用の操作手順情報を発信中・・・。