重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

a1に2001/11/1、b1に2002/11/2と入力、
c1 に=if(yearfrac(a1,b1,3)>1 ・・・・・・と言うような
記述の事をVBAで表せばどのような記述になるでしょうか、お願いします、

A 回答 (4件)

#3さんから回答がでましたので、もういいとは思いますが・・・


#3さんの回答を流用します。

Sub aaa()
a = Range("a1")
b = Range("b1")

If (Application.Run("ATPVBAEN.XLA!Yearfrac", a, b, 3) > 1) Then
MsgBox "1年を超える"
Else
MsgBox "1年を超えない"
End If
end sub

または

sub aaa()
If (Application.Run("ATPVBAEN.XLA!Yearfrac", Range("A1"), Range("B1"), 3) > 1) Then
MsgBox "1年を超える"
Else
MsgBox "1年を超えない"
End If
End Sub

>任意の年月日だから
>range("a1")=datevalue("a1")
>range("b1")=("b1")
>range("c1").formula="=if(yearfrac(a1,b1,3)>1 ・・とすればよいですかね、
任意の年月日というのはA1セルとB1セルに入力すると言う意味ですか?

いまだに質問を理解していなくて、すいません。
    • good
    • 0
この回答へのお礼

そうです、a1,b1に入力すると言う事です、質問の仕方が悪く済みませんでした、
本当に有り難うございました、

お礼日時:2002/11/04 18:59

ツール→アドインで『分析ツール』と『分析ツール-VBA』の2つをチェックします。



下は2つのセルを引数にしたユーザー定義関数の例です。If以下は例です。

質問で言えば、C1に
 =myYearfrac(A1,B1) とします。Yearfracの3番目の引数はユーザー定義関数内で『3』にしています。

『ATPVBAEN.XLA』はYearfracが書き込まれているアドイン名です。(私のExcelはこうでした)
アドインを追加すれば、VBE画面のプロジェクトエクスプローラで確認できます。


Function myYearfrac(rg1 As Range, rg2 As Range)
  Dim wariai As Double

  wariai = Application.Run("ATPVBAEN.XLA!Yearfrac", rg1, rg2, 3)
  If wariai > 1 Then
    myYearfrac = "1年超です"
  Else
    myYearfrac = "~1年です"
  End If
End Function
    • good
    • 0
この回答へのお礼

本当に有り難うございました、

お礼日時:2002/11/04 19:00

すいません。

質問の意味がわかりません。

>a1とb1には任意の年月日を入力して1より大きいかを判定させます
何が1より大きいか判断させたいのでしょうか?
・b1とa1の差?

>その時はDateValue("2001/11/1")や"2001/2/2"の処はどのような
記述になるでしょうか
a1,b1も関数を入れたいのですか?
c1のif文の中身ですか?

もう少し、具体的に質問していただければ、私のわかる範囲で回答いたします。

この回答への補足

済みません、任意の年月日だから
range("a1")=datevalue("a1")
range("b1")=("b1")
range("c1").formula="=if(yearfrac(a1,b1,3)>1 ・・とすればよいですかね、
其れからエクセル関数yearfracのはたらきと同じはたらきをするものはVBAでは何と記載すれば良いでしょうか、

補足日時:2002/11/04 17:15
    • good
    • 0

ちょっと、質問の意味がわからないですけど・・・



こんな様な質問ですか?
Sub a()
Range("A1") = DateValue("2001/11/1")
Range("B1") = "2002/2/2"
Range("c1").Formula = "=if(yearfrac(a1,b1,3)>1・・・"
End Sub
・日付はどちらの書き方でも日付とみなしてくれるようです。
・数式は、完了していないとエラーになります。

質問内容が違うときはすみません。

この回答への補足

有り難うございます、お教えの通りでよいのですが、
a1とb1には任意の年月日を入力して1より大きいかを判定させます、
その時はDateValue("2001/11/1")や"2001/2/2"の処はどのような
記述になるでしょうか、何回も済みません、

補足日時:2002/11/04 14:35
    • good
    • 0

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