| VBとは |
| VBの方式 | |
|---|---|
|
Visual Basic(以下VB)とは、 などで動作するアプリケーションを作ることができるプログラム言語である。 プログラム言語は以下の2種類に大別される。 | |
| インタプリタ方式 | ソースプログラムを編集中でも一行ずつ解釈実行可能な方式。 たとえば、プログラムを修正しながら修正した箇所だけ実行することが可能。 つまり、プログラム全体が完成していなくても、部分的に実行が可能である。 一般的にはコンパイラ方式により実行速度が遅いが、 プログラムに誤りがあった場合に修正しながら実行してみることが可能で、デバッグが速くなるという利点がある。 最近はパソコンが速くなってきたので、大量のデータの高速処理を求められたり、即応性を求められない限りは、 VBで開発しても(Okayan的には)さほど問題は感じられない。 |
| コンパイラ方式 | ソースプログラムを編集中に解釈実行できない言語。 ソースプログラムは一旦コンパイラで変換してからでないと実行できない。 たとえば、修正したプログラムをテスト実行したい場合にコンパイルをかけ、 実行プログラムを生成する必要がある。 一般的にはコンパイル済みのプログラム実行速度はインタプリタ方式の実行速度より速い。 C言語などがコンパイラ方式に属する。 |
| VBはこのうちインタプリタ方式に属する。 ただし、VBはコンパイラ方式の要素も含んでいる。 というのは、開発中はインタプリタ方式のようにデバッグ実行できるが、 いざ、一般向けに配布!という段階になってコンパイルが必要になるからだ。 配布先がVBを持っている場合に、ソースプログラムをそのままコンパイルせずに配布することも可能であるが、 通常はコンパイルを行ってから実行形式、もしくはインストーラ形式で配布する。 | |
| 昔ながらのBASICとの違い(その1) | |
|---|---|
| VBでは、「イベントが発生したときに実行する時の処理」をプログラムする。 昔ながらのBASICだけしか知らない人が初めにカルチャーショックを受ける概念である。 かくいうOkayanも初めにここでとまどった(爆)。 | |
| 昔ながらのBASIC | プログラムを実行すると、基本的に上から順に実行されていくプログラムである。 |
| Visual Basic (イベントドリブン型) |
イベントが発生したときだけイベント用のプログラムが実行される。
プログラムとしては、各イベント用の「イベントが発生したときにどういった処理をしてほいしいか」を書くことになる。
このイベント用の関数をイベントプロシージャと呼ぶ。 イベントには、 などなど、膨大な数がある。 プログラム実行中はイベントが数多く発生するが、 プログラマーは処理の必要なイベントだけに関してイベントプロシージャを書けばよい。 |
| 昔ながらのBASICとの違い(その2) | ||
|---|---|---|
| 昔ながらのBASICでは全ての描画や処理をプログラミングしていました。 VBではこれらの作業が大幅に効率化されています。 ここで、「ボタンが押されたら××する処理」を例に挙げて比較してみます。 | ||
| 作業 | 昔ながらのBASIC | Visual Basic |
| ボタン描画 | Line文などで始点/終点座標等を指定して描画する。 | ツールボックスからCommandBunntonコントロールを選択し、Formオブジェクトに貼り付ける。 |
| ボタンクリック | マウスがクリックされたら描画したボタンの始点/終点座標の中にマウスカーソルが居ることを判定する。 | ボタンのクリックイベントが自動的に発生する。 |
| ボタン移動や大きさ変更 | 始点/終点座標をコード修正する。 | マウスやキーボードなどで、Visualに整形する。 |
| Cとの大きな違い |
|---|
| VBとCは異なる部分の多い言語である。 何が違うかを書くと書ききれないが、Okayanが気づいた(つまずいた)、ものすごい違いを紹介する。 符号無しの変数、つまり、正の数だけを表す変数を使いたいときがある。 たとえば、距離の計算結果を代入する変数はマイナスの数を表す必要はないので、 正の数に限定した変数宣言をしたいときである。 Cを使ったことのある人ならばもちろん「Unsigned」で宣言すればよいと思いつく。 Okayanもその1人だった。 ところが、なんとVBではUnsigned(符号無し)の変数宣言が使えない。 VBのHELPでいくら探してもUnsignedの説明が見つからなかったのは、タダ単に「ないから」だった。(合掌) |