Lesson 10 「プロシージャ」(04/08/11 Wed)
あっぢぃ。暑いですのぉ・・・明日の朝方ペルセウス座流星群ってのが見えるらしいデスヨ。3時頃だったかな?まぁ興味のある人はクソ暑い夏の夜空をボーっと見るのもいいかもしれません。
さて今日は、プロシージャです。何かわかりますか?管理人はよくわかりません(ォィ)。プログラム書く時に、
Private Sub Command1_Click()
ってあるでしょ?これのことをサブプロシージャってゆうらしいですよ。まぁそんだけ。ふつうこの中にいろいろコード書くと、コマンドボタンを押した時にその中のコードが実行されますねぇ。
んでもその中ばっかり書いてたらゴチャゴチャしてきてわかりにくいです。というか編集がしにくくなります。なのでプロシージャ作っちゃいましょう。もちろん作れますよ。
Private Sub Test()
って書けばいいんです。別に宣言とかいりません。勝手に作っても全然OK。んじゃこいつはいつ実行されるのか。上の「Private Sub Command1_Click()」は、コマンドボタンを押すと、実行されましたね。そう。何かキッカケが必要なのです。自分で作ったモノなんだから、自分でキッカケを作らないといけません。
じゃあどうするか。
Call Test
こうします。つまり呼ぶ(Call)んですよ。呼ぶと、Testというサブプロシージャが実行されます。
ここまでが簡単なプロシージャです。えぇ簡単編。次ちょっと応用編。
ちょっとコード書きますね。
Private Sub Command1_Click()
Dim a As Integer
a = 100
Label1.Caption = a
End Sub
Private Sub Command2_Click()
Label1.Caption = a
End Sub
書きました。これ、コマンドボタン1を押すと、ラベルに100と表示されます。んでその後コマンドボタン2を押すと・・・あれ?何も表示されない・・・ってなりませんか?変数宣言はしたし、100を代入したのに、ラベルに表示されない・・・うん。されません。Private Subの中で宣言し、代入した値は、そのプロシージャ内のみ有効なんです。気をつけましょう。
んじゃあ他のプロシージャでも使い時はどうしましょう?そんな時はプロシージャの外で宣言してください。プロシージャの外で宣言した変数は、どのプロシージャでも使えます。
Dim a As Integer
Private Sub Command1_Click()
a = 100
Label1.Caption = a
End Sub
Private Sub Command2_Click()
Label1.Caption = a
End Sub
これなら、いきなりコマンドボタン2を押すとラベルに0(初期値)が表示されるし、コマンドボタン1を押してからコマンドボタン2を押すと、ラベルに100が表示されます。
さてさらにいきますよぉ。次は引数です。あ読み方わかりませんか?ひきすうです。なんだコレ?たぶん普通に生活してた人ならいんすうって読むと思いますが・・・いやひきすうなんです。えっとねぇプロシージャに値を渡すことができて、そのもらってくる値のことなんですけど、まぁコード書きますよ。
Private Sub Command1_Click()
Call Test(100)
End Sub
Private Sub Test(b As Integer)
Label1.Caption = b
End Sub
さて。コマンドボタン1を押すとどうなるでしょう?ラベルに100と表示されます。まず、Testというサブプロシージャがあるのに気がつくと思いますが、なんか()の中身があります。これは、「bという整数型の変数を引数とする」ってことです。つまり、Testを呼び出すには、オマケとして、整数型の数値をつけてやれってことですな。まぁわかりにくいと思いますけど。こういう使い方もあるってことで。
あとねぇこの引数ってゆーの別に使わなくてもいいから、プロシージャで括弧の中になんかあるときは引数で、それを値として使うことができるってことだけは覚えといて。この原理は重要なので。ってゆーか後半この考え方わからないと、つまづきます。
かなり重要。
あと引数ってゆう考え方はVB特有ではありません。どの言語でもたいがいありますんで。
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||