
こんにちは、ひろにも です。
今回は、関数の使い方についてまとめていきます。
FunctionとSubの違い、ByValとByRefの違いが知りたいという人は、別の投稿で説明しています。
関数とは
関数というと、数学っぽくて難しそうなイメージがありますけど、プログラミングの関数はそんなに難しいものではありません。
関数とは、処理のまとまりのことです。
プログラミングをしていると、1つのプログラムの中に何回か同じ処理を行う時があります。
その同じ処理っていうのを処理のまとまり「関数」として扱うことができます。
同じ処理なんだったら、コピペしたらいいじゃん!って思う人がいるかもしれませんが、関数にはいろいろとメリットがあるので、紹介していきます。
関数のメリット
関数のメリットは、経験上、プログラムが完成した後にでてきます!メリットとしては、3つありますね。
fa-check修正が楽になる。
fa-checkテストが楽になる
1つ目、「プログラムが見やすくなる」というのは、複雑な関数であればあるほど、コピペだとプログラムのソース自体の行数が増えていきます。行数が増えれば増えるほど、他の人が見る時に見にくいソースになります。プログラムは、複数人での開発が多いですので、周りの人が見やすいソースを心掛けることはとても大切なことです。
2つ目、「修正が楽になる」というのは、例えば同じ処理をしているところが、5か所あるとします。コピペでプログラムを作成した後、修正をしようとした時に5か所直す必要があります。しかし、関数としてまとめておくと、修正箇所が1か所になるというメリットがあります。
3つ目、「テストが楽になる」というのは、プログラムを作成した後、テストを行うのですが、コピペだとすべての箇所でテストをする必要がありますが、関数にしておくと関数のテストだけしておけば問題ないので、テストが楽になりますね。
ここまで、メリットばかり挙げましたが、個人的にデメリットが1つあります。。。
修正するときに、影響範囲をしっかり確認しないといけない点ですね。ただ、デメリットよりメリットの方が多いと思うので、同じ処理があれば「関数」にしていきましょう。
関数の使い方
関数を書くには、まずはこの形を覚えてください。一番多い使い方かなと思います。
処理を書く
End Function
(Function と ByValの説明は、次の回で説明していきます。)
プログラムの例
言葉ばかりではわかりにくいですね。プログラムを書いてみましょう。例として、テキストボックスの値を2倍にするプログラムを作成しましょう。
まずは、画面レイアウトから、テキストボックスとラベルとボタンを1つずつ用意してください。
画面レイアウト
ソース
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'値を変数にする
Dim value As Integer = CInt(txtValue.Text)
'値を2倍にする
lblAnswer.Text = Kake2(value)
End Sub
''' <summary>
''' 値を2倍にする関数
''' </summary>
''' <returns></returns>
Private Function Kake2(ByVal p_value As Integer) As Integer
Kake2 = p_value * 2
End Function
End Class
少しだけ解説をしてみます。
4行目:Cint()は、型をString型をIntegerに変換するという意味です。
変数:valueには、10が代入される。
6行目:Kake2という関数(2倍にする関数)を呼び出す。変数:value = 10 の2倍の値、20が関数から返ってくる。
その値を、txtValueに書き込む。
13行目;関数名:Kake2、引数(パラメータ):p_value(今回は10)、返却値の型:Integer
14行目:引数:p_value(10)を2倍した値をKake2に代入する。
結果
10が2倍されて、20となっていますね。
次は、もう少し詳しく、関数を見ていきますので、引き続きよろしくお願いします。