意外と重要ByVal

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

Private Sub Command1_Click()
    Dim txt1 As Long, txt2 As Long
    
    On Error GoTo ErrGoto
    
    'TextBoxから値を代入
    txt1 = Val(Text1.Text)
    txt2 = Val(Text2.Text)
    
    If Check1.Value = 0 Then 'ByValを使った関数を使うか
        Text3.Text = Add(txt1, txt2) 'Addで計算
    Else
        Text3.Text = AddByVal(txt1, txt2) 'AddByValで計算
    End If
    
    '計算する値に変化がないか、元のTextBoxに戻す
    Text1.Text = txt1
    Text2.Text = txt2
    Exit Sub
    
ErrGoto:
    MsgBox "エラー"
End Sub

'ByValを使ってない関数
Function Add(X1 As Long, X2 As Long) As Long
    Add = X1 + X2 '計算する
    X1 = 0 'わざと0にする
End Function

'ByValを使った関数
Function AddByVal(ByVal X1 As Long, ByVal X2 As Long) As Long
    AddByVal = X1 + X2 '計算する
    X1 = 0 'わざと0にする
End Function

Private Sub Command2_Click()
    Text1.Text = "121"
    Text2.Text = "548"
    Text3.Text = ""
End Sub




<戻る

Sample12.lzh


http://www.vector.co.jp/authors/VA015521/