• ベストアンサー

ひっかけ問題にするためですか?

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」は意味のないコードなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Optional x As Long = 5 の Optional って何か? ってのを理解していないようですね。 引数 x が省略された時「F_Proc() で呼び出された時」に x が 5 になります

GVHZUWNTL3
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

別に「ひっかけ問題」ではないです。 a = F_Proc() のように呼んだとき、x=5で計算した値を返します。 他のsubからも呼ばれるなど、値を指定して呼ばれるとは限らないようなとき、いわばdefaultの値10を返します。

GVHZUWNTL3
質問者

お礼

ありがとうございました。

  • 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() なんかの結果を比べてみるとか。

GVHZUWNTL3
質問者

お礼

ありがとうございました。