[[20031007193237]] 『VBAでifの結果をワークシート関数の戻り値にしたax(まきりん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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でしょうか?
 あっそうか、使える関数に変えて試してみればいいのか・・・。スイマセン。
 今後とも、宜しくお願いします。(まきりん)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.