複数回の同一処理がプログラムが出てきたら、関数(Function プロシージャ)を使うと、効率的なプログラムを作成できます
Function プロシージャを定義する時は、Function ステートメントを使って次のような形式で記述します。1行が長くなるときは、_を行末に書けば次行に書くことができます。
必ず、Return に戻り値に、As 戻り値のデータ型と同じデータ型のデータを記述することで、関数呼び出し元のプログラムに、値を返すことができます。
Public Function 関数名(ByVal 引数名 As データ型) As 戻り値のデータ型 ................. .............. ................. Return ..... End Function
引数の無い場合には、次のような形式になります。
Public Function 関数名() As 戻り値のデータ型 ................. .............. ................. Return ..... End Function
返す値が不要なときは、Sub プロシージャ を使います。
Public Function 関数名 と始めるのが普通です。とりあえずは、先頭に、Public を書くと覚えてください。通常関数名は先頭文字を英字の大文字で始めて、処理内容が分かる名称をつけます。
Public Function 関数名
何度も再利用するためには、様々な値を使えるようにする必要があります。その仕組みとして引数があります。次ののサンプルプログラムでは、商品価格が代入されるkakakuが引数です。kakakuは仮の名前で、プログラム本体では、別の名前を付けておきます。大事なのことは、As 以下のデータ型を同じにすることです。
ByVal を引数名の前に付けることで、本体の変数の値をコピーした別の値が、本体のプログラムから関数に渡されます。また、引数はいくつでも指定でき、次のように記述します。データ型は引数ごとに違っていても問題ありません。
関数名(ByVal 引数1 As データ型, ByVal 引数2 As データ型, ....)
関数内で処理した結果を、元のプログラムに値を返すために必要です。返す値は、引数の後に As で指定したデータ型になります。たとえば、Public Function CalucZeikomi関数では、Integer型なので、Return retZeikomi のデータ型は Integer型で宣言します。
Return .....
それでは、関数を使わなかったプログラム を、関数を使って修正します。商品の税込価格から消費税を計算し、消費税額を表示するプログラムを作成します。
Module Module1 Sub Main() ' 変数の宣言 Dim inStr As String Dim zeikomi(3) As Double ' キーボードから3商品の税込み価格を入力 For i As Integer = 1 To 3 Console.WriteLine(i & "番目の税込み価格を入力して") Console.WriteLine("Enterキーを押してください") InStr = Console.ReadLine() ' 文字列を整数に変換して配列に保存 zeikomi(i - 1) = Integer.Parse(inStr) Next ' 消費税額を求めて表示する Dim zei As Integer = 0 For i As Integer = 1 To 3 zei = CalucZeigaku(zeikomi(i)) Console.WriteLine("消費税は" & zei & "円です") Next End Sub '*************************************************************** ' 機能:消費税額を計算する関数 ' 引数:商品価格 ' 戻値:消費税額 '******1*********2*********3*********4*********5**********6***** Public Function CalucZeigaku(ByVal zeikomi As Integer) As Integer Dim retZeigaku As Double = 0 ' リターン値 ' 消費税額を求めて表示する hontai = zeikomi / 1.05 ' 本体価格は四捨五入 zeikomi = zeikomi- hontai retZeigaku = kakaku * 1.05 ' ◆戻値を設定してリターン Return retZeigaku End Function End Module
消費税額を計算するところプログラムが関数にしたことで、すっきりしました。修正も簡単になります。
次回は、Sub プロシージャ(関数)を勉強します。
| ◆ VB 文法 目次へ◆ |
|---|
| 文字列を表示する |
| Dim 変数の宣言 |
| = 代入演算子 |
| キーボード入力 |
| & 文字列連結演算子 |
| 3つ以上の文字列を連結 |
| 文字列を改行する |
| + 加算演算子 |
| - 減算演算子 |
| * 乗算演算子 |
| / 除算演算子 |
| ¥ 整数除算演算子 |
| Mod 整数剰余演算子 |
| ^ べき乗(累乗)演算子 |
| += -= *= /= |
| \= ^= &= |
| ◆ VB 文法 目次へ◆ |
|---|
| Day() |
| Fix() |
| Format() 数値編 |
| Hour() |
| Int() |
| IsNumeric() |
| LTrim() |
| Minute() |
| Month() |
| RTrim() |
| Second() |
| Space() |
| Trim() |
| Year() |
| ◆ VB 文法 目次へ◆ |
|---|
| Math.Absメソッド |
| Math.Ceilingメソッド |
| Math.Floorメソッド |
| Math.Maxメソッド |
| Math.Minメソッド |
| Math.Roundメソッド |
| Math.Signメソッド |
| Math.Truncateメソッド |