プロが教える店舗&オフィスのセキュリティ対策術

すみません、教えてください
イミージエイトウインドウから
myttを実行すると
「変数が必要です」のエラーがでます
教えてください

Public Type myType
Pos As Integer
xx As Integer
yy As Integer
find As Integer '-1あり 0なし
End Type

Function mytt()
Dim myzz As myType

myzz.Pos = 45
mySerch (myzz) '←ここでエラー

End Function

Function mySerch(ww As myType) As myType
ww.find = -1

End Function

A 回答 (3件)

こんにちは。



参照渡しですから、括弧はいらないと思いますね。

mySerch (myzz) '←ここでエラー
  ↓
mySerch myzz

だと思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2006/02/09 14:18

構造体変数を ByRef(値による参照)で渡しています。


よって、mySerchにおいて戻り値をセットする必要はないかと思います。

Function mytt()
  Dim myzz As myType

  myzz.Pos = 45
  mySerch (myzz)
  MsgBox myzz
End Function

Sub mySerch(ww As myType)
  ww.find = -1
End sub
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2006/02/09 14:20

mySerch関数が構造体の戻り値を必要としている関数なので、エラーが出ている個所を


myyy = mySerch(myzz)
とする必要があります。

パラメータとして構造体を渡しパラメータのデータに値をセットする関数(戻り値を必要としない)ならば、
Sub mySerch(wm As myType)
  :
End Sub
とすれば、エラーが出ている個所はそのままの記述で大丈夫です。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2006/02/09 14:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています