いわゆるGUI(Graphic User Interface、ウィンドウやメニューを使ったインターフェイス)のプログラムは作るのが難しいといわれています。事実、以前はWindowsのプログラムを開発するのはプロにとっても大変な難作業でした。それが、こんなにも気軽にできるようになったのは、何より高機能で使いやすい開発環境が整備されたおかげです。そして、そうしたWindows専用開発環境の走りであり、Windows開発のデファクトスタンダードとなっているのが「Visual Basic」です。
まあ、今更Visual Basicって何?なんて説明は無用でしょう(笑)。既に多くの(全くプログラミング経験のない)ユーザーがVisual Basicで手軽にプログラミングを楽しんでいます。初めてプログラミングをするならVisual Basic!というのは、半ば常識といってもよいでしょう。
・・・が! この常識は、近年になって大きく揺らぎました。なぜなら、Visual Basicが.Net対応となり、非常に大きく変わってしまったからです。従来のVBとVB
.Netの違いを簡単にまとめると、こんな感じになるでしょう。
1.なにより.Net対応となったことが最大の特徴。.NetのWebアプリケーション開発などもVBで行なえるし、プラットホームも他の言語と共通のものになった。2.アプリケーション開発に使われるGUIの部品などが「.Net Framework」と呼ばれるものに変わった。このため、従来のコントロールとはまったく違うものになった。
3.オブジェクト指向に対応した。従来は中途半端な対応しかされていなかったが、VB .Netにより本格的なオブジェクト指向言語になった。
4.言語の難易度がかなり違う。本格的なオブジェクト指向言語となったため、そのための基礎的な知識の習得がないと開発が難しい。
5.従来はランタイムDLLというものを使わないと動かなかった。今度は.ランタイムは不要となった代りに、Netフレームワークというのがないと動かなくなった。
要するに、「非常に高度な開発に対応できるようになったが、反面アマチュアがちょこっと遊ぶというレベルではなくなってしまった」といってよいでしょう。けっこう、本気で取り組まないといけない感じになってしまったのですね。
・・正直いって、既にVBの「とにかく簡単」という優位性がなくなった今、初めてプログラミングをするなら「VB .Netでなくてもいいんでない?」という気はします。個人的には、Delphi Personalの方がお勧めです(なにしろ、タダだしね)。けれど、「やっぱりVBが安心」という人もきっと多いことでしょう。そうした人のために、この入門を用意した、というわけですね。
まだVB .Netを買ってないなら、ここで方向転換してVB .Netをやめて、Delphi Personalをダウンロードして欲しいんですが(笑)。ダメ? じゃあ、先へ進めましょうか・・。
Visual Basicでは、作成するプログラムに必要なファイル類を管理するために「プロジェクト」というものを作ります。プログラムというのは、1つのコード(いわゆるプログラムリストのこと。命令がずらーっと並んで書いてあるやつ)のファイルだけでできているわけではありません。例えば、グラフィックなどを使うならそのファイルも必要です。また、Visual
Basicではウィンドウ(フォームと呼びます)単位でプログラムを作るようになっていますので、いくつものウィンドウを使ったプログラムではウィンドウの数だけフォームのファイルを作らないといけません。
そうしたたくさんのファイルをいちいち管理するのはとても面倒です。そこで、必要なデータをまとめて管理するプロジェクトというものが用意されているのです。——実をいえば、VB .Netでは更に上位のとりまとめを行なう「ソリューション」というものも用意されています。ソリューションの中にいくつものプロジェクトをまとめて開発したりできるんですね。ただ、現状ではそこまで複雑なことをする必要もないでしょうから、当分は「ソリューション=プロジェクト」という感覚で考えていていいでしょう。
さて、このプロジェクトは、同時に「作るプログラムのひな形」としての役割も果します。この最初に現れるダイアログでは、どのタイプのプログラムを作るかを選ぶのです。Visual Basicには、あらかじめそのプログラムに必要な情報を全て組み込んだ状態のプロジェクトファイルがひな形として用意されており、これを選ぶだけで自動的に必要なものがセットされた新しいプロジェクトが作られるようになっているのです。
このプロジェクト作成のダイアログは、左側に「プロジェクトの種類」の一覧が表示され、そこから作りたい種類を選ぶと、その種類のプロジェクトの雛形一覧が右側の「テンプレート」部分に現れるようになっています。VB .Netの場合、種類に「Visual Basicプロジェクト」を選んで下さい。また、作成するプロジェクトのテンプレートは「Windows アプリケーション」を選択しましょう。これは、一般的なWindowsのアプリケーションを作るためのものです。
また、既に作成してあるプロジェクトを修正したいときなどは、ダイアログ上にある「最近使ったプロジェクト」というタグを選ぶと、そこに作成したプロジェクトの一覧が現れるので、そこから使いたいものを選びます。
さてダイアログで「Windows アプリケーション」を選び開くと、ダイアログが消え、新しいプロジェクトがセットアップされます。
これがVisual Basicのメイン画面です。なんだかいくつも小さなウィンドウのようなものが組み合わせられた形をしていますね? これらは、プログラム作成をする際に必要な部品を作成編集するための各種のツールなのです。まずは、これらの役割を覚えることから始めましょう。
「ツールボックス」――これは、Visual Basic .Netに用意されている部品をひとまとめにしたものです。Visual Basicでは、部品のことを「コントロール」と呼びます。ツールボックスというタイトルの下に「データ」「コントロール」「Windows
フォーム」・・といった項目が見えますね? ここで、使用する項目を選ぶと、その種類のコントロールのアイコンが下にずらっと現れる仕掛けになっています。「Windows
フォーム」が、一般的なWindowsアプリケーションで用いられているGUIのための部品です。最初は、これだけ使うと考えておきましょう。
「フォームデザイナ」――フォームをデザインするためのものです。中央の四角い何もないウィンドウみたいなものが表示されている部分がこれです。「フォーム」というのは、Visual Basicに用意されている「ウィンドウ」を示す部品だと思って下さい。ここにツールボックスからコントロールを選んで配置することでウィンドウを作成できます。この部分は、フォームデザイナだけでなく、ソースコードのエディタなども表示されるようになっていて、上部に見えるタブを使って複数のエディタを切り替え表示しながら利用します。
「ソリューションエクスプローラ」――プロジェクトを管理するためのものです。初期状態では作成したプロジェクトの中に「参照設定」「AssemblyInfo.vb」「Form1.vb」といったものが組み込まれた状態になっていることと思います。実は、このForm1.vbというのが、デフォルトで作成されているフォームなのです。先のフォームエディタは、このForm1を開いたものだと考えてください。それ以外のものは、現段階では触らないようにして下さい。
「プロパティウィンドウ」――作成したコントロールの「プロパティ」を設定するためのものです。ここには、現在選択されているコントロールのプロパティが一覧表示されます。プロパティというのは日本語で「属性」などといわれますが、部品の様々な性質や振る舞いを設定する値のことです。Visual Basicでは、コントロールにはさまざまなプロパティが用意されています。このプロパティを設定することで表示や動作をいろいろと変えられるのです。
「クラスビュー」「ダイナミックヘルプ」――ソリューションエクスプローラとプロパティウィンドウの下部をよく見ると、それぞれの名前のタブの他に「クラスビュー」「ダイナミックヘルプ」といったタブが見えるはずですね。これらのタブを切り替えると表示されます。クラスビューは「クラス」という部品に関する情報を表示するものです。ダイナミックヘルプはリアルタイムに必要なヘルプを表示するものです。ヘルプは、困った時に表示される一覧から調べたい項目をクリックするだけですから簡単ですね。クラスビューは、とりあえずVBの基本がわかったところで使ってみるのがよいでしょう。
これらの基本的な働きと使い方を覚えることが、Visual Basicの第一歩といってよいでしょう。ただし、プロパティなどは「そこにある全プロパティを覚える」必要はありません。同様に、ツールボックスにある全アイコンの名前と働きを理解することはありません。それらはこれから少しずつ覚えていけばいいことですから。
1.まず、ツールボックスの「Windows フォーム」から「Button」のアイコンをクリックして選びます。
2.そのままフォームデザイナをマウスでドラッグすると、Buttonコントロールが1つ作成されます。作成されたコントロールは、選択された状態だと周囲に四角い取っ手(ハンドルといいます)が表示され、そこをドラッグして大きさを変形できます。またコントロールの中央をマウスでドラッグすれば移動できます。
3.作成したButtonが選択された状態になっていると、このButtonに用意されているプロパティの一覧がプロパティウィンドウに表示されます。そこから「Text」という項目を探して下さい。これはボタンの表面に表示されているテキストを示すプロパティです。Textという項目の右側をマウスでクリックすると、そこに文字が書き込めるようになりますから、ここで「押して!」と入力しましょう。作成したButtonの表示が変わりますよ。
まあ、ごく単純ですが、これでフォームはできました。ボタンが1つだけですが、まあサンプルということで…。
こうしてフォームのレイアウトが完成したら、次に行なうのは「コードの入力」です。そういえば、今までの説明では、プログラムのコードを書き込むためのウィンドウはまだ登場していませんでしたね?
Visual Basicでは、コードの入力編集はコードウィンドウというものを使って行ないます。これは、「コードを割り当てたいコントロールをダブルクリックして開く」のが基本です。
ここでは、作成したButtonをダブルクリックしてみて下さい。画面に新たにウィンドウが表示されるはずです。これがコードデザイナ(エディタ)です。デザインというのも変な気がするのでコードエディタと呼ぶことにします。
このコードエディタには、よく見ると最初からなにやら書き込んでありますね。それは以下のようなものです。
Public Class Form1
Inherits System.Windows.Forms.Form
" Windows フォーム デザイナで生成されたコード "
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Sub
End Class
まあ、細かい説明は後にして、この2行の間に命令を追加して、このように書き換えて下さい。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("押すなよ!")
End Sub
それでは、「デバッグ」メニューから「開始」、または「デバッグなしで開始」を選んで、プログラムを実行してみましょう。するとVBはビルド作業(プロジェクトを元に実行プログラムファイルを作成すること)を行ない、その場で完成したプログラムを実行します。しばらく待っていると、画面に作成したフォームが新しいウィンドウとして現れるのがわかりますね。そして、「押して!」とあるボタンをクリックすると、画面にメッセージが現れます。
いかがです? ごく単純なものですが、自分で作ったプログラムが実際に動くのはなかなか感動的じゃありませんか?
プログラムの終了は、フォームウィンドウのクローズボックスをクリックしてウィンドウを閉じると自動的に終了し、Visual Basicの画面に戻ります。
メソッドは、通常、このような形で書かれることになっています。
(Private) Sub 《メソッド名》(…パラメータ…) 《他にいろいろつくことがある》
……ここに実行する命令を書く……
End Sub
その後に「Sub」というのがきます。これが、メソッド定義を示す予約語です。その後にメソッドの名前があります。つまり、今回のメソッドは「Command1_Click」という名前のものだったわけですね。
その後の()には、「パラメータ」と呼ばれるものがきます。これは、メソッドを呼び出すときに何かの値を受け渡すときに使われる特別な変数のことです。このCommand1_Clickというメソッドでは、なにやらややこしそうなものがいくつか書かれています。これらについてはいずれ考えるとして「そういうもので値を受け渡したりするのだ」ということだけ、今は理解しておきましょう。その後にもいろいろくっつくこともあるんですが、これらもひとまず省略します。
問題は、この「メソッドの名前」です。——Visual Basicでは、「イベント駆動型」と呼ばれる仕組みでプログラムを動かすようになっています。イベント駆動というのは、「イベントによってさまざまなプログラムが呼び出される」という仕組みです。
イベントというのは、「ユーザーが何か操作をしたりプログラムの状態が変更されたりしたときに、それをプログラム自身に知らせるために送られる信号のようなもの」と思えばいいでしょう。プログラムで何かが起きると、システムは「こんなことが起きた!」ということを知らせるために、それに見合ったイベントを発生させます。すると、そのイベントに対応したメソッドが自動的に呼び出され、実行されるのです。
ということは、「どんなコントロールでどんなイベントが起きたとき、なんというメソッドが呼び出されるか」がわからないとコードは書けないことになります。逆に、その基本ルールがわかれば、それに従ってメソッドを書くことで、さまざまなイベントに対応したメソッドを書けるようになりますね。
そこで、先ほどのメソッドの名前をよーく見て下さい。「Command1_Click」となっていますね。――そう、Visual Basicでは、メソッドの名前は、
《コントロール名》_《イベント名》
このようになっています。つまり先のメソッドは「Command1というコントロールでClickというイベントが発生したら呼び出される」というものだったわけです。Clickというイベントは、その名の通り、そのコントロールをユーザーがマウスでクリックしたときに発生するイベントです。
このイベントというのは非常にたくさん用意されていて、全てを最初から覚えるのは不可能です。今のところは、この「Click」というイベントだけしっかり頭に入れておけばいいでしょう。
・・まぁ、実をいえばVB .Netでは必ずしも「メソッド名=コントロール名_イベント」になるというわけではありません。これは「デフォルトで作成されるメソッド名がこうなる」というように考えて下さい。少なくともこのルールに沿って命名されていれば、メソッド名を見るだけでそれがどのコントロールのどのイベントで呼び出されるものかわかりますから、大変助かることは確かです。
ついでといってはなんですが、メソッドで使った命令についても説明しておきましょう。それは「MsgBox」というものです。これは、画面に簡単なメッセージを表示する命令です。
MsgBox (《表示するテキスト》)
このように、命令の後に括弧でくくってテキストを書くと、それだけで画面に表示してくれます。注意したいのは、「Visual Basicでテキストをコードに書くときは、その前後にダブルクォート(")記号をつける」ということです。つまり「Hello」というテキストを使いたいときは、「"Hello"」と書かないといけません。
さて、これでなんとかプログラム第1号は完成しました。後は、プロジェクトの保存について覚える必要がありますね。——プロジェクトの保存は「ファイル」メニューの「すべてを保存」を選ぶだけです。また、「Form1.vbの保存」を選べば、編集中のForm1.vbだけ保存できます。VBのプロジェクトでは、フォーム以外にもさまざまな情報が保存されますので、「すべてを保存」で全部保存するのが基本と考えましょう。
また、作成したプログラムですが、これはプロジェクトのフォルダ内にある「bin」フォルダの中に保存されます。プロジェクトを実行した際に自動的にビルドされますから、実行後にフォルダ内を確認してみましょう。
…とりあえず、これで「プロジェクトの作成し、フォームのデザイン、コードの入力、実行、保存」といった、開発の基本的な流れを理解したことになります。では、次回からVisual Basicのプログラミング言語について少しずつ覚えていくことにしましょう。