関数の値渡し ByVal [VB]

VB2012-2017

ByVal 引数

VBでは、関数(Sub Function プロシージャ)を作成するときは、引数変数の前にByValを記述すると、関数には呼び出しもとの値がコピーされて渡される(値渡し)ので、関数内で引数の値が変更しても、呼び出し元の引数の値は変更されません。

  Public Function 関数名(ByVal 引数名 As データ型) As 戻値データ型
      .................
      ..............
  End Function

  Public Sub 関数名(ByVal 引数名 As データ型)
      .................
      ..............
  End Sub

ByValは省略することができます。

  Public Function 関数名(引数名 As データ型) As 戻値データ型
      .................
      ..............
  End Function

  Public Sub 関数名(引数名 As データ型)
      .................
      ..............
  End Sub

ByVal 引数 サンプルプログラム

それでは、関数の引数にByValを使って、商品の税込価格から消費税を計算し、消費税額を画面に表示するプログラムを作成します。

ソースリストの枠内をクリックすると全選択できます。

Module Module1

    Sub Main()
        ' 変数の宣言
        Dim inStr As String
        Dim zeikomiKakaku As Double
        ' キーボードから3商品の税込み価格を入力
        Console.WriteLine("税込み価格を入力して")
        Console.WriteLine("Enterキーを押してください")
        InStr = Console.ReadLine()
        ' 文字列を整数に変換して配列に保存
        zeikomiKakaku = Integer.Parse(inStr)

        ' 消費税額を求めて表示する
        Dim zeiGaku As Integer = 0
        zeiGaku = CalucZeigaku(zeikomiKakaku)
        Console.WriteLine("消費税は" & zeiGaku & "円です")
    End Sub

    '***************************************************************
    ' 機能:消費税額を計算する関数
    ' 引数:税込価格
    ' 戻値:消費税額
    '******1*********2*********3*********4*********5**********6*****
    Public Function CalucZeigaku(ByVal zeikomiKakaku As Integer) As Integer
        Dim retZeigaku As Integer = 0          ' リターン値
        ' 消費税額を求めて表示する
        Dim hontaiKakaku As Integer = 0
        hontaiKakaku = zeikomiKakaku / 1.08    ' 本体価格は四捨五入
        retZeigaku = zeikomiKakaku - hontaiKakaku
        ' ◆戻値を設定してリターン
        Return retZeigaku
    End Function

End Module