- ベストアンサー
Visual Basicで使えないExcel関数
Visual Basic EditorにてExcel関数(具体的に書くとEDATE関数等)を使いたいのですが、対応していないものが多く使うことが出来ません。 どうにかして使いたいのですが、皆目検討がつきません。 ご存知の方は教えていただければ幸いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBAでExcelのワークシート関数を使用するには、通常はApplication.WorksheetFunction をつかいます。 Application.WorksheetFunction.Vlookup(......) など。 しかし、WorksheetFunctionで使える関数は限られており、EDATEは含まれていません。したがって、VBAで同じ動作を行う処理を書く必要があります。 EDATE(A,B)は日付AからB月後の月の最後の日を求める関数なので、これはB+1月後の1日から-1することで同じ結果が得られます。 したがって、VBAの中では DateSerial(Year(A), Month(A) + B + 1, 1) - 1 で求めることができます。
その他の回答 (3)
- KamiHotoke
- ベストアンサー率40% (8/20)
先ほどの回答はVBなのかVBAなのかわらなかったので、VBのケースで書きました。
- KamiHotoke
- ベストアンサー率40% (8/20)
EXCELの関数をそのまま使用するなら下記のようにする手があります。 例えばMin、Max関数はVBにはありませんが Data=Application.Max(”A1:A20”) Data=Application.Min(”A1:A20”) などと記述すれば該当範囲のMax,Minの数値を得ることができます。 その他にも、同様な使い方が可能ですが、すべてこれでいけるか実証してはいません。確認して使ってください。
- siddhaartha
- ベストアンサー率25% (45/175)
EDATE関数って指定日のXヶ月後(前)の日付を返す関数ですよね? (実はあまり詳しくは知らないのですが・・・) ならば、VBのDateAdd関数で代用は出来ないですか? 的外れならごめんなさい。
お礼
EDATEについてはDateAddを使うことで何とかなりそうです。ありがとうございます。
お礼
浅学のためApplication.WorksheetFunctionを知りませんでした。教えてくださりありがとうございます。