web-dev-qa-db-ja.com

ブール値を返す関数?

VBAには単純な関数があり、それが正常に実行されたかどうかを確認する必要があります。私はVBAをあまり知らないので、それが可能かどうかわかりません。私はこのようなことをしたいです:bool X=MyFunction()

[〜#〜] qtp [〜#〜] 記述プログラミングでVBAを使用しています。これは動作しません:

Function A as Boolean
   A=true
End Function

それは言う:Expected statement

しかし、メソッドなどで戻り値の型を確認できません。

12
Mirial
function MyFunction() as Boolean
    .....
    .....
    MyFunction = True 'worked
end function

dim a as boolean = MyFunction()
21

VBAでは、関数と同じ名前の変数に割り当てることにより、関数の戻り値を設定します。

Function MyFunc() as Boolean
    MyFunc = True
End Function
9
codeape

VBAの代わりにVBScriptを使用しているのではないでしょうか。その場合、VBScriptはTypeを示しません

これはVBScriptで機能します

dim test,b
test = 1
b=false
msgbox ("Calling proc before function test=" & test)
msgbox("Calling proc before function b=" & b)
b = A(test)
msgbox ("Calling proc after function test=" & test)
msgbox("Calling proc after function b=" & b)

Function A(test)
test = test +1  
A=true
End Function

またはあなたの例では

Function A()    
A=true
End Function
4
osknows

関数がVBAで機能したかどうかを確認する実際の方法はありません。関数が成功したかどうかを自分で判断する必要があります。例えば:

Function AFunction() as Boolean
    on error goto 1
    MyFunc = True
    AFunction = True
    Exit Function
    1
    AFunction = False
End Function

上記は、関数が失敗したかどうかを通知します。失敗した場合はラベル「1」に移動してからfalseを返し、それ以外の場合はtrueを返します。

探している「エラー」でない場合は、返されたデータまたは提供されたデータが適切かどうかを判断する必要があります。これを行う1つの方法は、失敗を表す特定の値[エラーコード]を返すことです。

1
Serodis

関数宣言にアクセスできる場合は、ブールの戻り値の型を設定して、実行に応じてtrueまたはfalseを返すことができます。関数がブール値を返すと、コードは機能します。

0
chamel