ビギナーズコーナー

N88BASICプログラムから
Visual Basicへの移植の第2ステップ

横田 秀次郎

 前回の春号では,N88BASICプログラムには習熟されているがVisual Basic(VBと略称)プログラミングはまだこれからという方のための,入門の心構えを説明しました.今回はVBプログラムでのサブルーチンの作成法を紹介します.
 なお,使用するVBのバージョンは6.0とします.このバージョンの基本的な部分に関しては,5.0とは大差はありません.

VBプログラム入門

 VB 6.0をインストールして走らせると,まず図1の「新しいプロジェクト」ウィンドウが表示されます.通常のプログラムを作成する場合は「標準EXE」アイコンを選択し,図2のVB計画画面を呼び出します.

Begin-1.jpg (41941 バイト) <図1>PROJECTを起こすにあたり,PROJECTの種類を指定する画面

 通常のVBプログラムは必ず,フォームウィンドウ画面を備えています.複数のフォームウィンドウを備えることができますが,図2で中央に位置するのが第1番目のフォームウィンドウです.特に変更しない限り,Form1と名前が付けられますが,ここではSimpTestと名称を変更します.
 左側に位置するのがツールボックスで,ツールボックスの中に用意されたテキストボックス,コマンドボタンなどのコントロールを取り出して,フォームの中に組み込みます.

Begin-2.jpg (52664 バイト) <図2>VBの計画画面

 ここでは3つのテキストボックスと1つのコマンドボタンをフォームウィンドウの中に組み込んであります.

  ◆ テキストボックスの名前…Text1,Text2,Text3
  ◆ コマンドボタンの名前……Command1

 フォームウィンドウ上のコマンドボタンの上で,マウスをダブルクリックすると,次のような中身が空のプロシージャ(関数)が書き込まれたコードウィンドウが呼び出されます.

  Private Sub Command1_Click()

  End Sub

 これがN88BASICやQuick Basicには存在しなかった新しい機能で,イベントプロシージャ(関数)と呼ばれるものです.このプロシージャ(関数)は実行モードでコマンドボタンをクリックした時に呼び出されて実行されるサブルーチンです.
 この中に次のプログラムを書き込むことにしましょう.

  Dim r as single
  Dim H as single
  Dim str1 as string
  Dim str2 as string
  Dim taiseki as single
  str1 = text1.text
  str2=text2.text
  r=val(str1)
  H=val(str2)
  taiseki = 3.1416*r*r*H/3
            '円錐体積計算式を直接書き込む.
  Text3.text=str(taiseki)

 これにより,コマンドボタンを押すとText1に書き込まれた値を半径とし,Text2に書き込まれた値を高さとして円錐の体積を計算し,Text3に書き込みます.
 フォーム上で,コントロール上以外のスペースで,マウスをダブルクリックするとコードウィンドウの中に次のイベントプロシージャ(関数)が呼び出されます.このイベントプロシージャ(関数)はプログラムが実行され,フォームが最初に画面上に現れるときに実行されます.

  Private Sub Form_Load()

  End Sub

 このプロシージャ(関数)の中に次のプログラムを書き込みます.

  Text1.text=""
  Text2.text=""
  Text3.text=""

 このプログラムを書いておかないと,プログラムのスタート直後に各テキストボックスにテキストボックスの名前が書き込まれて目障りです.
 これで一応プログラムは完成したので,計画画面上でテスト実行を行います.

(1) 計画画面のメニュー「実行(R)」-「開始(S)」により,プログラムを実行する.
(2) すると,計画画面の上に実行画面のフォームウィンドウが表示される.
(3) この実行画面上で,Text1に10を,Text2に15を書き込み,Command1をクリックする.

 実行フォーム画面を図3に示します.
 フォームウィンドウSimpTestにラベルボックスを3つ追加して,それぞれのテキストボックスの用途を明確にするために使用します.
 ラベルボックス上に名称を表示するためにSub Form_Load()イベント関数の中に下記のプログラムを追加します.

  Label1.Caption = "半径"
  Label2.Caption = "高さ"
  Label3.Caption = "円錐の体積"

 さらにコマンドボタンCommand1の画面上の表示を変えるために,下記のプログラムも追加します.

  Commamd1.Caption = "体積を計算する"

 以上のレベルアップを施した結果,図3は図4のように改善されます.

<図3>フォームSimpTest
実行画面(1)
<図4>フォームSimpTest
実行画面(2)
Begin-3.jpg (8762 バイト) Begin-4.jpg (10692 バイト)

 TextやCaptionはプロパティと呼ばれます.プロパティへの値代入はプログラムで行うほかに,計画時,計画画面の右下に置かれたプロパティウィンドウで設定することでも実現が可能です.
 プロパティウィンドウが画面に表示されていないときは,メニュバー「表示(V)」-「プロパティウィンドウ」によりこの小ウィンドウを呼び出すことが可能です.
 プロパティウィンドウには現在どのコントロールのプロパティが表示されているのかを確認する必要があります.コントロールを選び,その上でマウスをクリックするとそのコントロール用のプロパティに変わります.あるいはプロパティウィンドウの最上列のプルダウンメニュで指定することも可能です.
 テキストボックスText1に関するプロパティ設定表を図5に示します.このプロパティ表に含まれる項目は幅広く,多くの機能に関係するので,その都度1つ1つ使い方を覚えていかなければなりませんが,最初はデフォルト値で使ってみることから始めます.
 ここではIMEModeプロパティについて説明しておきます.今回入力用に使用する2つのテキストボックスは数値を入力するわけですから,この2つのテキストボックスに入力するときにはモード変更操作しなくとも半角文字で入力されるように「2-オフ」を選びます.
 以上のように計画画面と対話しながら,ウィンドウズ対応のプログラムを作成し,走行テストを繰り返します.この段階ではプログラムは2つのファイルから成り立っています.

(1) 拡張子vbpのプロジェクトファイル
(2) 拡張子frmのフォームプログラムファイル

 いったんディスクにファイルとしてセーブしたプログラムを,後でVBシステムプログラに読み込むには,vbpファイルのみを指定するだけで済むような仕組みになっています.
 一応完成したら,計画画面のメニュー「ファイル(F)」-「xxxxx.exeの作成(K)」を指定して実行型のファイルを作成することができます(xxxxxxの部分にはプロジェクト名が自動的に入っている).
 VBでのEXEファイルは開発したマシン上ではスタートメニュー,エクスプローラ,ファイルマネージャなどで指定して走らせることができますが,このファイル1つだけをVBシステムのインストールされていないほかのパソコンに入れても動きません.
 実行するには関連ファイルが必要ですので,それらを含んだセットアップディスクを作成しなければなりません.これも計画画面のメニューバーから行いますが,今回は説明を省略します.
 VBの古いバージョンでは関連ファイルを自分で選んで,copyコマンドでコピーしたものですが,現状では仕組みが複雑になりましたので,この方法は適当ではありません.

以下略


copyright 1999 横田 秀次郎