連載

改訂版 プロフェッショナルVB.NETプログラミング

Introduction:Visual Basic .NETへの飛躍

株式会社ピーデー 川俣 晶
2004/01/28
Page1 Page2 Page3

 本記事は、(株)技術評論社が発行する書籍『VB6プログラマーのための入門 Visual Basic .NET 独習講座』の一部分を許可を得て転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。

 Visual Basicが6.0から.NETに変わるということは、これまでのバージョンアップとは意味が異なる非常に大きな出来事であるといえる。ここでは、過去のBASIC言語の変化の歴史を踏まえながら、変化することの意義と内容を解説する。なお、Visual Basic .NETの1.0から1.1への変更は小さなものに留まっているので、ここでは両者を併せてVisual Basic .NETとして解説している。

 大きな変化を伴うバージョンアップ

 まず、最初に強調しておきたいことがある。Visual Basicの6.0から.NETに移行するというのは、4.0から5.0になったり、5.0から6.0になったりするのとはわけが違う。その重大さをすでに理解されている読者は、この章を読み飛ばしても構わない。だが、具体的に何がそんなに大事件なの? と思った方には、ぜひ読んでいただきたい。

 筆者の個人的な感想からいうと、いわゆるBASICと呼ばれるプログラム言語の歴史は、それほど平たんなものではなかった。何度もの大事件により、ガラッとイメージを変えながら今日まで使われ続けたといってもよい。そして、また大事件が起ころうとしているのである。

 そもそもBASICとは、Beginners All purpose Symbolic Instruction Codeの略である。つまり、Beginnersという言葉からも分かるとおり、初心者向けを意識した手軽な言語であり、プロフェッショナルが業務用のシステムを作り込むような用途を想定したものではなかった。

 このようなBASICに訪れた最初の大事件は、だれもが知っているあのMicrosoft社が、最初の製品としてマイクロコンピュータ用のBASIC言語処理系を開発したことだろう。その結果、マイクロコンピュータで利用可能なプログラム言語のナンバーワンはBASICとなり、あらゆるアプリケーション・ソフトがBASICを用いて記述されるようになった。それに応じて、業務ソフトのために必要な機能が続々と付け加えられ、BASICはビギナーの言語からプロの言語へと生まれ変わった。

 第2の大事件は、QuickBASICなどの新世代のBASIC言語処理系で、構造化文法が取り入れられたことだろう。それまでのBASICはすべての行に行番号を付け、その番号を指定することで処理の流れを変えていた。しかし、構造化文法が導入されたことにより、行番号をいちいち付ける必要はなくなり、まるで別言語に見えるほど大きな変貌を遂げた。もちろんプログラマーも、これに伴ってプログラムの書き方を大幅に変更する必要が発生した。

 第3の大事件は、Visual Basicの出現に伴い、ちょっとオブジェクト指向風にメソッドなどが導入されたことだろう。また、グラフィカルなフォームデザイン機能とプログラム言語が密接に連携することになり、またもや、ガラッと雰囲気が変わってしまった。

 そして、それに続く第4の大事件が、Visual Basic 6.0(以下VB 6)からVisual Basic .NET(以下VB.NET)への変化なのである。

 これらの大事件のうち、1つでも経験があれば、どれぐらいのインパクトがあるかは推測できるだろう。だが、幸か不幸か最初からVisual Basicだったという人のために一例をお見せしよう。ごく初期のBASICでは、以下のようなプログラムを書いていた。これは、むかしの小型版BASICであるTiny BASICを模倣する「ワンべぇ」(WonderWitch BASIC Environment)Win32版というソフトで作成したものである。都合により、通常printと表記されるステートメントがdebugとなっていることと、キーワードがアルファベット大文字ではなく小文字表記になっていることを除けば、往年のBASICと同じと考えて差し支えない。

 なお、本連載のリストは行頭に行番号を付加しているが、これはリストの内容の一部ではない。例えば、下記のリストの“1:”や“2:”はリストの内容の一部ではなく、説明の便宜上付けているものである。行番号を使用したプログラミングの詳細については、Chapter 01:行番号使用時のコロン(:)記号を参照されたい。

1: 10 i=1
2: 20 debug i
3: 30 i=i*2
4: 40 if i<1000 then goto 20
リスト0-1 初期のBASICによって記述したプログラム

 実行結果は以下のようになる。

●図0-2 リスト0-1の実行結果

 さて、VB 6なら、これは次のように書くだろう(リスト0-3)。

1: i = 1
2: Do
3:   Debug.Print i
4:   i = i * 2
5: Loop Until i >= 1000
リスト0-3 リスト0-1と同じ内容をVB 6で記述したプログラム

 実行結果は以下のようになる。

●図0-4 リスト0-3の実行結果

 思わず、本当にこれが同じBASICと呼ばれる言語なの!? といいたくなるほど違うことが分かるだろう。しかし、紛れもなく両者は共通の基本文法を持っている。例えば、“i=1”や“i=i*2”という式の部分は、統合開発環境(以下IDE)が読みやすくするために空白を入れた以外、まったく共通である。また、VB 6は古い文法でも受け付けるということをご存じだろうか? 例えば、VB 6で標準EXEのプロジェクトを新規作成し、フォームのLoadイベントに以下のように行番号のあるコードを書き込んでみていただきたい。

1: Private Sub Form_Load()
2: 10 i = 1
3: 20 Debug.Print i
4: 30 i = i * 2
5: 40 If i < 1000 Then GoTo 20
6: End Sub
リスト0-5 行番号のあるプログラム

 実行結果は以下のようになる。

●図0-6 リスト0-5の実行結果

 これは確かに実行でき、ちゃんと結果は[イミディエイト]ウィンドウに出力されるのである。これこそは、まさにVB 6が、往年のBASIC言語の直系の子孫である証といえるだろう。

 余談だが、VB.NETでも、リスト0-7に示すように記述したら実行可能であったことは付記しておく。

1:   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
2:     Dim i As Integer
3: 10:   i = 1
4: 20:   Debug.WriteLine(i)
5: 30:   i = i * 2
6: 40:   If i < 1000 Then Goto 20
7:   End Sub
リスト0-7 行番号のあるプログラム

 実行結果は図0-8のようになる。

●図0-8 リスト0-7の実行結果
 
 

 INDEX
  [連載] 改訂版 プロフェッショナルVB.NETプログラミング
  Introduction:Visual Basic .NETへの飛躍
  1.大きな変化を伴うバージョンアップ
    2.開発環境の比較、言語仕様の変化、実行環境の変化
    3..NET Frameworkより得るもの
 
「改訂版 プロフェッショナルVB.NETプログラミング 」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH