『VBAでifの結果をワークシート関数の戻り値にしたい』(まきりん) VBAを使っていて、初心者なのですが (先程、やっとこちらのサイトで色々お世話になった結果なんとか 使える状態になりました(^_^;)) ところで、質問ですが if条件Then 関数の名前=「ワークシート関数」(今回は、datedif) という風にしたいのですが、どのように記述すればOKでしょうか? ちなみに、私が書いたのは Elseif T=""Then days=apprication.WorksheetFunction.datedif(B,K,"d") です。何かおかしい所ありますか? 結果は、#VALUE!が表示されます。 他の条件式の結果は、文字列とかで正常に表示されます。 スイマセン、INAさん、おいぼれ弥太郎さんに先程少しお伺いしたのですが 上記、で上手く理解しきれていないのでしょうか? アドバイス、お願いします。(まきりん) ---- 前にもどこかに書いたような気がしますが、VBAでDATEDIFは使えません VBAで使えるワークシート関数はVBAのヘルプで[Visual Basic で使用できるワークシート関数一覧] を参照してください(ISBLANKも使えないと思います) Sub Test() Dim Days Days = DateDiff("d", Range("A1"), Range("A2")) MsgBox Days End Sub VBAには DateDiff 関数があるのでそれを使用してみました  (りな) ---- よく読んだら関数でしたね Function days(b, k) days = DateDiff("d", b, k) End Function あまり変わりませんが一応訂正しときます  (りな) ---- りなさん、ありがとうございます。 無事、希望通りの値が返るようになりました!! 今後の参考までに、教えてください。 Datediffは、ワークシート関数ではなく、あくまでもVBA用の関数なので apprication.WorksheetFunctionを頭に付けなくてOKって事ですよね。 もし、仮にDatedifがVBAで使える”ワークシート関数”であれば 最初の days=apprication.WorksheetFunction.datedif(B,K,"d") で、使い方としては、OKでしょうか? あっそうか、使える関数に変えて試してみればいいのか・・・。スイマセン。 今後とも、宜しくお願いします。(まきりん)