- ベストアンサー
ひっかけ問題にするためですか?
Sub M_Proc() Dim a As Long a = F_Proc(3) MsgBox a End Sub Function F_Proc(Optional x As Long = 5) As Long F_Proc = x * 2 End Function vbaのサンプル問題なのですが、 F_Procの値は6になり、M_Procのaは6と表示されるのですが a= 5は何のためにあるのでしょうか? ひっかけ問題にするためですか? 「= 5」は意味のないコードなのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Optional x As Long = 5 の Optional って何か? ってのを理解していないようですね。 引数 x が省略された時「F_Proc() で呼び出された時」に x が 5 になります
その他の回答 (2)
- okormazd
- ベストアンサー率50% (1224/2412)
回答No.3
別に「ひっかけ問題」ではないです。 a = F_Proc() のように呼んだとき、x=5で計算した値を返します。 他のsubからも呼ばれるなど、値を指定して呼ばれるとは限らないようなとき、いわばdefaultの値10を返します。
質問者
お礼
ありがとうございました。
- neKo_deux
- ベストアンサー率44% (5541/12319)
回答No.1
> a= 5は何のためにあるのでしょうか? 引数が省略された時のためです。 Optional (Visual Basic) http://msdn.microsoft.com/ja-jp/library/09yx51zh(v=vs.80).aspx MsgBox F_Proc(3) MsgBox F_Proc(2) MsgBox F_Proc(1) MsgBox F_Proc(0) MsgBox F_Proc() なんかの結果を比べてみるとか。
質問者
お礼
ありがとうございました。
お礼
ありがとうございました。