§1 VB2005によるプログラム作成 2 vb2005 プログラミング実習 [Menu]
 back next 

【3】 オブジェクト

 「オブジェクト」とは、ボタンや画像などプログラムを構成するためのものである。
 フォーム(ウィンドウ)に配置できるオブジェクトは、ツールボックスに用意されている。

(9) 「ツールボックス」の一覧表示を固定する(常に表示する)。ツールボックス
 「ツールボックス」には、フォームに配置するオブジェクトが用意されている。フォームにオブジェクトを配置するときには、常に表示されている方が便利である。

 @ 「ツールボックス」の位置にマウスポインタを移動するとオブジェクトの一覧が表示される。A [ピン]のアイコンをクリックする。もう一度、A[ピン]のアイコンをクリックして、マウスをツールボックスから移動するとツールボックスは隠される。

ツールボックス2(10) ボタンを配置する。
 ツールボックスのコモンコントロールから[ab Button]をダブルクリックするとフォームにボタンが配置される。

 オブジェクトにマウスポインタを移動してしばらくすると図のように説明が表示される。

 アイテムをクリックして、フォーム上でドラッグすることで自由な位置、大きさでオブジェクトを配置することができる。

 

 オブジェクトの移動・サイズ変更・削除 
 オブジェクトを選択(マウスでクリック)すると、オブジェクトのまわりに8個の四角が表示される。この状態をオブジェクトの選択という。
 移動方法  オブジェクトの上でマウスポインタがに変わるのでドラッグするとオブジェクトがマウスと同じように動く。ボタンを離した場所にオブジェクトが配置される。
 サイズ変更方法  オブジェクトのまわりの四角にマウスポインタを合わせると、マウスポインタがなど両端に矢印が付いた形状に変わる。この状態でドラッグするとサイズを変えることができる。
 削除  選択したオブジェクトの上で右クリックするとメニューが表示される。その中の[削除(D)]を選択すると削除される。または、オブジェクトを選択し、[Delete]キーを押す。

 

 次に、ボタンのプロパティをいろいろ変更していく。Button1オブジェクトを選択しておくこと。

プロパティの設定(11) ボタンに「終了」と表示する。
 プロパティウィンドウのTextプロパティに「終了」と入力する。(図@)

(12) ボタンの大きさを100×50ピクセルにする。
 プロパティウィンドウのSizeプロパティに「100,50」と入力する。(図A)
 Sizeプロパティの左の+をクリックするとWidthとHeightプロパティが表示される。このプロパティに入力しても良い。

(13) ボタンの配置場所を座標(100,100)にする。
 プロパティウィンドウのLocationプロパティに「100,100」と入力する。(図B)
 Locationプロパティの左の+をクリックするとXとYプロパティが表示される。このプロパティに入力しても良い。

(14) ボタンの名前を「EndButton」にする。
 プロパティウィンドウの(Name)プロパティに「EndButton」と入力する。(図C)
 この名前(オブジェクト名)はプログラムのときに使う名前である。

 オブジェクトを配置するとオブジェクトの名前に番号が付ついたものがオブジェクト名として設定される。配置するオブジェクトが多くなると番号が付けられただけでは区別しにくくなるので、個別にわかりやすい名前を付けるようにした方が良い。

 

 

【4】 イベントとメソッド

 「イベント」とは、特定の出来事が起こる(発生する)ことである。例えば、“キーボードを押した”や“マウスをクリックした”などである。VBでは、このイベントによって、イベントに対応するプログラムが処理される。このような形式のプログラムを「イベント駆動(イベントドリブン)」という。
 「メソッド」とは、手続きのことで、プログラムとして作成されるものである。

(15) プログラムを終了させるメソッドを次のように作成する。
 フォームに配置したボタン(EndButton)をダブルクリックすると、次のようにコードを記述するウィンドウが開く。

コードウィンドウ

 プログラムは次の通りである。下線の「End」を入力する。End命令はプログラムを終了する命令である。

Public Class Form1
    Private Sub EndButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EndButton.Click
        End
    End Sub
End Class
 「Private Sub 〜 End Sub」までが1つのメソッドである。[終了]ボタン(EndButton)のクリックイベントに対応するメソッドで、メソッド名は「EndButton_Click」となっている。
 1行が長くなりすぎるときなど、次の行に続けて書きたいときもある。このようなときは、行末にアンダーライン(_)を入れると次の行に続いていることを表す。
    Private Sub EndButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
        Handles EndButton.Click

(16) プログラムを実行する。[終了]ボタンをクリックして終了させる。

結果 プログラムが終了する。 ([終了]ボタンをクリックすると、対応するメソッド「EndButton_Click」が呼び出され(実行され)、End命令が処理される。)

 プログラム(コード)ウィンドウとデザインウィンドウ 
 プログラムとデザインのウインドウは、上部のタブ(@とA)で表示を切り替えることができる。
デザインウィンドウとコードウィンドウ
 両方のウィンドウが表示されていないときは、ソリューションエクスプローラのForm1.vb(B)をクリックして、C(プログラム)またはD(デザイン)をクリックすると表示される。

 

【5】 プロパティとメソッド


 プロパティのデータは、プロパティウィンドウで設定(変更)するだけでなく、プログラムでも設定することができる。また、メソッドもイベントに対応したものだけでなく、プログラマが自由に作ることができる。

(17) ボタンを1つ追加し、プロパティを次のように設定する。

(Name) MoveButton
Locateion 100, 50
Text ボタン移動

(18) [ボタン移動](MoveButton)のクリックイベントに対応するメソッドを次のように作成する。

    Private Sub MoveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoveButton.Click
        EndButton.Left = 0
        EndButton.Top = 100
    End Sub

入力候補リスト 「endbutton.」とドットまで入力すると、図のようにEndButtonオブジェクトのプロパティやメソッドの候補リストが表示される。
 続けて、「endbutton.le」まで入力すると候補リストのLeftが選択状態になる。続けて、「=」を入力するとLeftの不足部分が補われる。

 「EndButton.Left」とは、「EndButton」オブジェクト(終了ボタン)の「Left」プロパティを表す。オブジェクト名とプロパティ名を「.」(ドット)でつないで表す。「EndButton.Top」も同じである。

 Leftプロパティはウインドウの左側のフレーム(枠)からの距離、Topプロパティはウィンドウ上部のフレームからの距離である。

オブジェクトの配置

(19) プログラムを実行する。[ボタン移動]ボタンをクリックする。

結果 [終了]ボタンがウィンドウの左端に移動する。

(20) ボタンをもう1つ追加し、プロパティを次のように設定する。

(Name) SizeButton
Locateion 180, 50
Text サイズ変更

(21) [サイズ変更](SizeButton)のクリックイベントに対応するメソッドを次のように作成する。(ページ下部の図参照)

   Private Sub SizeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SizeButton.Click
        EndButton.Width = 150
        EndButton.Height = 100
    End Sub

(22) プログラムを実行する。[サイズ変更]ボタンをクリックする。

結果 [終了]ボタンのサイズが大きくなる。

(23) 次のメソッド(ChangeColor)を追加する。(ページ下部の図参照)

    Private Sub ChangeColor()
        Me.BackColor = Color.Red
    End Sub
 フォームの背景色なので、Form1.BackColorとしたいところであるが、エラーとなる。Form1はMeで表すようである。

(24) ボタンをもう1つ追加し、プロパティを次のように設定する。

(Name) ColorButton
Locateion 180, 50
Text 背景色

(25) [背景色](ColorButton)のクリックイベントに対応するメソッドを次のように作成する。

    Private Sub ColorButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ColorButton.Click
        ChangeColor()    '→ "Me.ChangeColor()"でも良い
    End Sub

プログラムリスト
(21)、(23)、(25)のプログラム

(26) プログラムを実行する。[背景色]ボタンをクリックする。

結果 ウィンドウの背景色が赤色になる。

 

 ChangeColorメソッドはイベントに関係しないメソッドである。このように、プログラマが自由にメソッドを作ることができる。
 作成したメソッドを使うには、メソッド名を記述するだけで呼び出すことができる。
 オブジェクトの配置座標は「Locateion」プロパティで設定した。しかし、プログラム([ボタン移動]のメソッド)で配置場所を変更するときは「Left」プロパティと「Top」プロパティを使った。「Locateion」プロパティで配置場所を変更するには、次のように記述する。
   EndButton.Location = New Point(0, 100)
 
 同じように、サイズ変更には「Size」プロパティではなく、「Width」プロパティと「Height」プロパティを使った。「Size」プロパティでサイズを変更するには、次のように記述する。
   EndButton.Size = New Size(150, 100)
 
 詳しくは、ヘルプなどで調べてみよう。
 フォームの背景色をプログラムで変更するとき、「BackColor」プロパティには色の名前(Color.Red)で設定した。「Color」はVBに用意されている色のオブジェクト名で「Red」がプロパティ名である。プログラムでは、「BackColor」プロパティに「Color」オブジェクトの「Red」プロパティのデータを代入している。
 
 色のデータの表し方には、光の三原色である赤、緑、青(RGB:Red,Green,Blue)のデータで表すこともできる。赤色のRGBデータは、R=255、G=0、B=0である。RGBデータで「BackColor」プロパティにデータを設定するには、次のように記述する。
 
   Me.BackColor = Color.FromArgb(255, 0, 0)
 
 「Color」オブジェクトの「FromArgb」メソッド(プロパティではない)を使って、RGBデータを「BackColor」プロパティに代入できるデータに変換している。
 オブジェクトのメソッドを表すときもプロパティと同じように「.」でつないで表す。
 
 詳しくは、ヘルプなどで調べてみよう。
 イベントに対応するメソッドの定義部の形式は次の通りである。
 
    Private Sub メソッド名(引数) Handles イベント名
 
 イベント名には、このメソッドが取り扱うイベント名を記述する。例えば、ボタン移動のメソッドの定義部は次のように記述されている。
 
   Private Sub MoveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoveButton.Click
 
 これを次のように変更(追加)する。
 
   Private Sub MoveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoveButton.Click, SizeButton.Click
 
 実行して、[サイズ変更]ボタンをクリックすると[終了]ボタンが大きくなるとともに左側に移動する。
 [サイズ変更]ボタンをクリックするとSizeButton_ClickメソッドとMoveButton_Clickメソッドの両方が実行されるためである。

 

 オブジェクトは「データ(プロパティ)と手続き(メソッド)の集合体である」、という考えでプログラムを記述する技法を「オブジェクト指向プログラミング」という。



 back next 
 §1 VB2005によるプログラム作成 2 vb2005 Copyright©2007 Hiroshi Masuda 
inserted by FC2 system