見出し画像

Visual Basic - ウィンドウズと一体化した構造化BASIC

Visual Basic が登場するまでのウインドウズの進化は

Visual BASIC - 登場前夜

に書きましたが、ウィンドウズのプログラムは最初にウィンドウありきなのが最大の特徴です。今までのBASICのように行番号の一番小さな行であるとか、Mainというサブルーチンから始まるのではなく、まずウィンドウを出すところから始まります。後のバージョンでは、画面を持たないコードを書けるようになったり、ウィンドウを出すのではなく、準備する段階でのコードも書けるようになったのですが、最初のバージョンは SHOWイベントが最初に実行されたはずです。

ウィンドウズのGUIオブジェクトが、ほぼそのままVBのオブジェクトになっており、これらに対してイベントが発生したり、プロパティを持っていたりします。最初のバージョンでサポートされていたオブジェクトとメソッドは以下の通りです。GUI以外にもファイルやタイマーなどのオブジェクトもあります。

最初のVBでのオブジェクトとメソッド

VBの特徴は「画面ありき」で、まず基本となるウィンドウである Form オブジェクトを VB環境の画面エディタで作成し、ここで配置したメニューやボタンなどに対して処理を書いていくというのが基本です。なるほどVBのお里がレポートジェネレータなのがよくわかります。この書き方は後のJavaScriptにも引き継がれているところもありますね。

VBが登場したタイミングでは、まだMFCというGUIクラスライブラリを持つC++も無かったので、一気に広まるかとも思えたのですが、そうでもありませんでした。QBを使っていた人はともかく今までのBASICを使っていた人には、構造化されたBASICを理解するハードルは高く、Cを使っている人には、いろいろと制約があり直接APIを呼ぶ事が出来ないVBは、便利ではあるもののわざわざBASICを覚えてまで使うということにもならずに、ボチボチという感じでした。

私としては元々は古いBASICな人ですが構造化BASICに慣れ親しんでいましたし、マイクロソフトはBASICを重視するだろうと信じていました。そもそもウィンドウズがまだ全然普及していなくてMSDOSな時代だったので、せっかくプログラムを作っても、まわりで使える人は殆どいないという状況でもありました。最初のバージョンでは日本語がサポートされていなかったのですが、そもそもこの頃のウィンドウズは特に日本語フォントの扱いがいろいろと怪しい時代だったので、印刷することを考えると英語で作っておくのが吉という時代でもありました。

VBで扱える文字コード。
128以上はフォント依存であるもののマルチバイトはサポートされていない。

Visual Basic

VBの言語としての特徴については、以下のページが詳しいです。

VB(Visual Basic)とは?特徴や文法例をご紹介します!

VBが登場してから、その後の進化については、以下のページがよくまとめています。

Visual Basicが30周年を迎える(Happy 30th Birthday, VB!)

VB(Visual Basic)を理解する!初心者でも分かる特徴・歴史、VB.netとの違いや関係などを簡単に解説!

この後、MSDOS版のVBが登場し、それからようやくウィンドウズでも日本語もサポートされたバージョンが使えるようになり、ようやく普及し始めた感じです。この辺りで今までのBASICの人たちが乗り換えてきたのですが、その後もVBはVBAとしてワードやエクセルといったオフィスソフトのコードでも使えるようになったり、ActiveX/OCXといったテクノロジーの基盤となったのですが、WEBの時代になりIEといったクライアント(VBScript)であるとか、IISといったサーバ側の言語としても採用され一大ファミリーを築きます。

こうなるとVBもテクノロジーの進化に合わせて、Javaに対抗するためにも変化していく必要が出てきて、C++系列から進化してきたC#との統合が図られ、.NET というテクノロジーが登場し、今に至ります。古いBASICな20世紀人もようやく追いついてきたものの、この .NET にはついていけないようで、Ver6で力尽きたコードが多く見られます。

VBの個別の話は、思いついた時に少しづつ書いてみるつもりです。

ヘッダ画像は Microsoft Visual Basic Language Reference の表紙。文中の表もここからの引用です。

#プログラミング言語 #BASIC #VB #VBS #VBA #Windows #Microsoft

この記事が気に入ったらサポートをしてみませんか?