VB.NET 関数 基本的な使い方

こんにちは、ひろにも です。

今回は、関数の使い方についてまとめていきます。

FunctionとSubの違い、ByValとByRefの違いが知りたいという人は、別の投稿で説明しています。

関数とは

関数というと、数学っぽくて難しそうなイメージがありますけど、プログラミングの関数はそんなに難しいものではありません。

関数とは、処理のまとまりのことです。

プログラミングをしていると、1つのプログラムの中に何回か同じ処理を行う時があります。

その同じ処理っていうのを処理のまとまり「関数」として扱うことができます。

同じ処理なんだったら、コピペしたらいいじゃん!って思う人がいるかもしれませんが、関数にはいろいろとメリットがあるので、紹介していきます。

 

関数のメリット

関数のメリットは、経験上、プログラムが完成した後にでてきます!メリットとしては、3つありますね。

メリット
プログラムが見やすくなる。
修正が楽になる。
テストが楽になる

1つ目、「プログラムが見やすくなる」というのは、複雑な関数であればあるほど、コピペだとプログラムのソース自体の行数が増えていきます。行数が増えれば増えるほど、他の人が見る時に見にくいソースになります。プログラムは、複数人での開発が多いですので、周りの人が見やすいソースを心掛けることはとても大切なことです。

2つ目、「修正が楽になる」というのは、例えば同じ処理をしているところが、5か所あるとします。コピペでプログラムを作成した後、修正をしようとした時に5か所直す必要があります。しかし、関数としてまとめておくと、修正箇所が1か所になるというメリットがあります。

3つ目、「テストが楽になる」というのは、プログラムを作成した後、テストを行うのですが、コピペだとすべての箇所でテストをする必要がありますが、関数にしておくと関数のテストだけしておけば問題ないので、テストが楽になりますね。

 

ここまで、メリットばかり挙げましたが、個人的にデメリットが1つあります。。。
修正するときに、影響範囲をしっかり確認しないといけない点ですね。ただ、デメリットよりメリットの方が多いと思うので、同じ処理があれば「関数」にしていきましょう。

 

関数の使い方

関数を書くには、まずはこの形を覚えてください。一番多い使い方かなと思います。

関数
Private Function 関数名(ByVal 引数 As 型) As 返却する値の型
    処理を書く
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となっていますね。

次は、もう少し詳しく、関数を見ていきますので、引き続きよろしくお願いします。

 

VB.NETの記事一覧

おすすめの記事