GO BACK

Visual Basic教室 その1


「Visual Basicの基礎知識」


■なぜVisual Basicなのか


 Windowsの世界では、プログラミングと一般ユーザーの距離が近い。そう強く感じます。本職のプログラマではない、趣味でパソコンを使っているごく当たり前のユーザーが、ちょっとした楽しみで、遊びで、プログラミングをしてみる、そんな風景が当たり前のように見られます。

 いわゆるGUI(Graphic User Interface、ウィンドウやメニューを使ったインターフェイス)のプログラムは作るのが難しいといわれています。事実、以前はWindowsのプログラムを開発するのはプロにとっても大変な難作業でした。それが、こんなにも気軽にできるようになったのは、何より高機能で使いやすい開発環境が整備されたおかげです。そして、そうしたWindows専用開発環境の走りであり、Windows開発のデファクトスタンダードとなっているのが「Visual Basic」です。

 まあ、今更Visual Basicって何?なんて説明は無用でしょう(笑)。既に多くの(全くプログラミング経験のない)ユーザーがVisual Basicで手軽にプログラミングを楽しんでいます。初めてプログラミングをするならVisual Basic!というのは、半ば常識といってもよいでしょう。

 では、なぜVisual Basicがいいのでしょうか? 一体どこがビギナーに向いているのでしょう? また、欠点はあるのでしょうか? そうした特徴についてざっとまとめてみると、こんな感じになるでしょう。


1.何よりプログラミングが簡単。Visual Basicは、Windowsのプログラムに必要なボタンやメニューなどといった部品があらかじめ用意されており、それらをマウスを使って簡単にデザインすることができる。そして「これをクリックしたらこうして欲しい」といった必要最小限の部分にだけユーザーがプログラムを書けばいいようになっている。

2.Visual Basicで使われている「BASIC(べーしっく)」という言語がとてもわかりやすい。最近のパソコンでは、本格開発ではC言語などが使われているが、Cは非常に難しく初心者にはわかりにくい。BASICはごく単純な命令と構文を理解するだけで使え、難しい概念などもあまり理解する必要がないため誰でもマスターできる。また、Visual BasicのBASICは、エクセルのマクロなどで使われているVBA、WebやWindows 98の操作に使われているVBScriptといった言語と互換性があり、これさえ覚えておけばさまざまな応用ができることも魅力の一つだろう。

3.とにかく安い! Visual Basicにはいくつかのエディションがある。もっとも廉価なラーニングエディションは2万前後で購入できる。そしてこれだけで、普通のアプリケーション開発に必要な機能は一通り揃っているのだ。

4.ただし、コンパイル後のプログラムの配付がちょっと面倒。Visual BasicはランタイムDLLというライブラリファイルを読み込みながら動く。このため、できたアプリケーション(EXEファイル)をそのままコピーしても動かない。ディストリビューション(配付)ウィザードという特別なツールを使って、プログラムの実行に必要なファイルをひとまとめにしたインストーラを作成し、これを使って他のマシンにインストールをしないといけないのだ。

5.実行速度が遅い。以前に比べるとずいぶんと速くはなったが、Cなどで一から開発したものに比べるとやはり動作速度は遅い。このため、アクションゲームなど速度を要求されるプログラミングをするときは、APIと呼ばれるWindows内部の関数をダイレクトに呼び出さないといけないなど、速度アップのために相当な苦労をすることになる。


 要するに、「めちゃめちゃ高度なものは難しいが、ちょっとしたプログラムをちょこちょこっと簡単な操作で作れる手ごろな言語」がVisual Basicだ、といえるでしょう。まさに、我々アマチュアのためにこそある言語といってもいいのです。




■まずはプロジェクトと基本ツールを覚える


 では、さっそくVisual Basicを使ってみることにしましょう。現在(99.05.08)、Visual Basicはver. 6.0がリリースされています。ここでは、このバージョンを使って説明をします。

 Visual Basicを起動すると、まず最初にこのようなダイアログが現れます。これは、これから作成する新しい「プロジェクト」の設定をするための画面です。



 Visual Basicでは、作成するプログラムに必要なファイル類を管理するために「プロジェクト」というものを作ります。プログラムというのは、1つのコード(いわゆるプログラムリストのこと。命令がずらーっと並んで書いてあるやつ)のファイルだけでできているわけではありません。例えば、グラフィックなどを使うならそのファイルも必要です。また、Visual Basicではウィンドウ(フォームと呼びます)単位でプログラムを作るようになっていますので、いくつものウィンドウを使ったプログラムではウィンドウの数だけフォームのファイルを作らないといけません。

 そうしたたくさんのファイルをいちいち管理するのはとても面倒です。そこで、必要なデータをまとめて管理するプロジェクトというものが用意されているのです。

 このプロジェクトは、同時に「作るプログラムのひな形」としての役割も果します。この最初に現れるダイアログでは、どのタイプのプログラムを作るかを選ぶのです。Visual Basicには、あらかじめそのプログラムに必要な情報を全て組み込んだ状態のプロジェクトファイルがひな形として用意されており、これを選ぶだけで自動的に必要なものがセットされた新しいプロジェクトが作られるようになっているのです。

 通常、ダブルクリックで起動するアプリケーション(EXEファイル)を作るときは、「標準EXE」というものを選択します。他のものは、やや特殊なプログラミングに利用するものなので、慣れない内は使わない方がよいでしょう。

 また、既に作成してあるプロジェクトを修正したいときなどは、ダイアログ上にある「最近使ったファイル」というタグを選ぶと、そこに作成したファイルの一覧が現れます。その中に使いたいプロジェクトが見つからなかったならば、「既存のファイル」タグを選ぶと、通常のファイルダイアログが現れますので、そこでファイルを探して選び、開きます。

 さてダイアログで「標準EXE」を選び開くと、ダイアログが消え、新しいプロジェクトがセットアップされます。



 これがVisual Basicのメイン画面です。なんだかいくつも小さなウィンドウのようなものが組み合わせられた形をしていますね? これらは、プログラム作成をする際に必要な部品を作成編集するための各種のツールなのです。まずは、これらの役割を覚えることから始めましょう。


「ツールボックス」――これは、Visual Basicに用意されている部品をひとまとめにしたものです。Visual Basicでは、部品のことを「コントロール」と呼びます。現在使えるコントロールは、全てこのツールボックスにアイコンとして用意されています。

「フォームエディタウィンドウ」――フォームをデザインするためのウィンドウです。「フォーム」というのは、Visual Basicに用意されている「ウィンドウ」を示す部品だと思って下さい。ここにツールボックスからコントロールを選んで配置することでウィンドウを作成できます。

「プロジェクトエクスプローラ」――プロジェクトを管理するためのものです。初期状態では「フォーム」という項目に「Form1(Form1)」というものが組み込まれた状態になっていることと思います。実は、このForm1というのが、デフォルトで作成されているフォームなのです。先のフォームエディタは、このForm1を開いたものだと考えてください。

「プロパティウィンドウ」――作成したコントロールの「プロパティ」を設定するためのものです。ここには、現在選択されているコントロールのプロパティが一覧表示されます。プロパティというのは日本語で「属性」などといわれますが、部品の様々な性質や振る舞いを設定する値のことです。Visual Basicでは、コントロールにはさまざまなプロパティが用意されています。このプロパティを設定することで表示や動作をいろいろと変えられるのです。

「フォームレイアウトウィンドウ」――これは作成したフォームが画面のどこに表示されるかを設定するものです。中に小さなモニタのイメージが表示されていますね。その中に小さな白い四角がありますが、これが現在作成しているフォームを示します。これをマウスでドラッグして移動することで、モニタのどこに表示するかを設定できます。


 これらの基本的な働きと使い方を覚えることが、Visual Basicの第一歩といってよいでしょう。ただし、プロパティなどは「そこにある全プロパティを覚える」必要はありません。同様に、ツールボックスにある全アイコンの名前と働きを理解することはありません。それらはこれから少しずつ覚えていけばいいことですから。




■とにかく簡単なプログラムを作ってみよう!


 プログラミングなんてのは、とにかく「習うより慣れろ」です。基本的なツール類の役割がわかったら、さっそく簡単なプログラムを作ってみましょう。


1.まず、ツールボックスから「CommandButton」のアイコンをクリックして選びます。これは上から3つ目の右側のアイコンです。

2.そのままフォームエディタをマウスでドラッグすると、CommandButtonコントロールが1つ作成されます。作成されたコントロールは、選択された状態だと周囲に四角い取っ手(ハンドルといいます)が表示され、そこをドラッグして大きさを変形できます。またコントロールの中央をマウスでドラッグすれば移動できます。

3.作成したCommandButtonが選択された状態になっていると、このCommandButtonに用意されているプロパティの一覧がプロパティウィンドウに表示されます。そこから「Caption」という項目を探して下さい。これはボタンの表面に表示されているテキストを示すプロパティです。Captionという項目の右側をマウスでクリックすると、そこに文字が書き込めるようになりますから、ここで「押して!」と入力しましょう。作成したCommandButtonの表示が変わりますよ。

 まあ、ごく単純ですが、これでフォームはできました。ボタンが1つだけですが、まあサンプルということで…。

 こうしてフォームのレイアウトが完成したら、次に行なうのは「コードの入力」です。そういえば、今までの説明では、プログラムのコードを書き込むためのウィンドウはまだ登場していませんでしたね?

 Visual Basicでは、コードの入力編集はコードウィンドウというものを使って行ないます。これは、「コードを割り当てたいコントロールをダブルクリックして開く」のが基本です。

 ここでは、作成したCommandButtonをダブルクリックしてみて下さい。画面に新たにウィンドウが表示されるはずです。これがコードウィンドウです。

 このコードウィンドウには、よく見ると最初からなにやら書き込んであります。それは以下のようなものです。

Private Sub Command1_Click()

End Sub

 これはどういうことなのかというと、「先ほどダブルクリックしたCommandButtonに割り当てるコードはここに書いて下さい」ということを示しているのです。

 まあ、細かい説明は後にして、この2行の間に命令を追加して、このように書き換えて下さい。

Private Sub Command1_Click()
  MsgBox "押すなよっ!"
End Sub

 つまり、まん中に1行だけ命令を書き加えたわけです。これでプログラムは完成です。それから、"と"の間にある部分以外は、全て半角の英数字で書いて下さい。プログラミング言語の世界では、命令や式などを全角で書いてはいけません。これはVisual Basicに限らず、プログラミング言語全般でいえることですから忘れないで下さい。

 それでは、「実行」メニューから「開始」を選んで、プログラムを実行してみましょう。画面に、作成したフォームが新しいウィンドウとして現れるのがわかりますね。そして、「押して!」とあるボタンをクリックすると、画面にメッセージが現れます。

 いかがです? ごく単純なものですが、自分で作ったプログラムが実際に動くのはなかなか感動的じゃありませんか?

 プログラムの終了は、フォームウィンドウのクローズボックスをクリックしてウィンドウを閉じると自動的に終了し、Visual Basicの画面に戻ります。




■サブルーチンとイベントの秘密


 この「Private Sub …」から「End Sub」までを、「サブルーチン」といいます。Visual Basicのプログラムというのは、ながーい1つづきのコードを書く、というわけではありません。「サブルーチン」と呼ばれる小さなコードが、必要に応じていくつも書かれていく、という書き方をするのです。

 サブルーチンは、通常、このような形で書かれることになっています。

(Private) Sub 《サブルーチン名》(…パラメータ…)
	……ここに実行する命令を書く……
End Sub

 最初の「Private」というのは、「フォームに用意するサブルーチンを書くときの決まり文句」だと思って下さい。フォーム以外のところにもサブルーチンを書くことはあるのです。が、当分の間はフォームにしかサブルーチンは書かないでしょうから、みんなこれをつけると考えてよいでしょう。

 その後に「Sub」というのがきます。これが、サブルーチン定義を示す予約語です。その後にサブルーチンの名前があります。つまり、今回のサブルーチンは「Command1_Click」という名前のサブルーチンだったわけですね。

 その後の()には、「パラメータ」と呼ばれるものがきます。これは、サブルーチンを呼び出すときに何かの値を受け渡すときに使われる特別な変数のことです。このCommand1_Clickというサブルーチンではパラメータは使いませんからなにもありませんね。が、何もなくても()だけはつけなくてはいけません。

(※パラメータについては、実際に使うようになってから説明しますから、今は「そんなものがある」とだけ知っておけばいいです)

 問題は、この「サブルーチンの名前」です。実はここにVisual Basicのプログラムの秘密があるのです。

 Visual Basicでは、「イベント駆動型」と呼ばれる仕組みでプログラムを動かすようになっています。イベント駆動というのは、「イベントによってさまざまなプログラムが呼び出される」という仕組みです。

 イベントというのは、「ユーザーが何か操作をしたりプログラムの状態が変更されたりしたときに、それをプログラム自身に知らせるために送られる信号のようなもの」と思えばいいでしょう。プログラムで何かが起きると、システムは「こんなことが起きた!」ということを知らせるために、それに見合ったイベントを発生させます。すると、そのイベントに対応したサブルーチンが自動的に呼び出され、実行されるのです。

 ということは、「どんなコントロールでどんなイベントが起きたとき、なんというサブルーチンが呼び出されるか」がわからないとコードは書けないことになります。逆に、その基本ルールがわかれば、それに従ってサブルーチンを書くことで、さまざまなイベントに対応したサブルーチンを書けるようになりますね。

 そこで、先ほどのサブルーチンの名前をよーく見て下さい。「Command1_Click」となっていますね。――そう、Visual Basicでは、サブルーチンの名前は、

《コントロール名》_《イベント名》

このようになっているのです。つまり先のサブルーチンは「Command1というコントロールでClickというイベントが発生したら呼び出される」というものだったわけです。Clickというイベントは、その名の通り、そのコントロールをユーザーがマウスでクリックしたときに発生するイベントです。

 このイベントというのは非常にたくさん用意されていて、全てを最初から覚えるのは不可能です。今のところは、この「Click」というイベントだけしっかり頭に入れておけばいいでしょう。

 ついでといってはなんですが、サブルーチンで使った命令についても説明しておきましょう。それは「MsgBox」というものです。これは、画面に簡単なメッセージを表示する命令です。

MsgBox 《表示するテキスト》

 このように、命令の後にテキストを書くだけでそれを表示してくれます。注意したいのは、「Visual Basicでテキストをコードに書くときは、その前後にダブルクォート(")記号をつける」ということです。つまり「Hello」というテキストを使いたいときは、「"Hello"」と書かないといけません。

 さて、これでなんとかプログラム第1号は完成しました。後は、プロジェクトの保存と、コンパイルの方法だけ覚える必要がありますね。

 プロジェクトの保存は「ファイル」メニューの「プロジェクトの上書き保存」を選ぶだけです。最初の時だけは、プロジェクトのファイル名とフォームのファイル名を保存ダイアログで尋ねてきますので、これらを全て同じフォルダの中に保存して下さい。2回目以降は尋ねてきません。

 また、プログラムをコンパイルしてEXEファイルを作成するには、「ファイル」メニューの「Project1.exeの作成」を選びます。これを選ぶと、ファイル名を入力する保存ダイアログが現れますので、ここでEXEファイル名を入力すれば、作成されます。ただし! 先に触れたようにこのEXEを実行するにはランタイムライブラリというものがシステムに組み込まれていなければいけませんから、他のマシンにコピーしても動きません。あしからず。

 …とりあえず、これで「プロジェクトの作成し、フォームのデザイン、コードの入力、実行、保存」といった、開発の基本的な流れを理解したことになります。では、次回からVisual Basicのプログラミング言語について少しずつ覚えていくことにしましょう。


GO NEXT


GO HOME