私はVBA経由でExcelで関数を作成しようとしており、その関数内でinbuilt関数を使用できるかどうか疑問に思っています。たとえば、LookupやMatch.Iのような関数は、VBA &の式を持つソリューションを持っていますが、関数が同じことをすることができるかどうかを知ることに興味があります。VBAによって作成されたユーザー定義関数またはカスタム関数内でexcel inbuilt関数を使用できますか?
VLookupが最初に見つかったアイテムの値だけを返す関数を作成しようとしています。いないすべての組み込みワークシート関数をVBAでこのように使用することができます
Public Function whatever(rin As Range) As Variant
Dim mx As Variant
mx = Application.WorksheetFunction.Max(rin)
whatever = Application.WorksheetFunction.Sum(rin)/mx
End Function
注:ここでは
'function which can return the Vlookup value only for 1st found value
Function SLOOKUP(Pvalue As Range, Rng As Range, Rng1 As Range, pIndex As Long)
Dim Cvalue As Variant
Dim Mvalue As Long
Dim Uvalue As Long
Dim Result As Variant
Result = ""
Cvalue = Pvalue.Value
Mvalue = Application.Worksheet.Function.Match(Cvalue, Rng, -1)
Uvalue = Pvalue.Row
If Mvalue = Uvalue Then
Result = Application.Worksheet.Function.VLookup(Cvalue, Rng1, pIndex, 0)
Else
Result = 0
End If
SLOOKUP = Result
End Function
答えは「はい」、(すなわち、特にUDFのが、一般的に環境を変更することはできません)、いくつかの注意事項/制限付き。 より具体的にするには、実行しようとしていることと、作成または使用しようとしているコードを含める必要があります。 –
私はコードを追加しました。あなたの考えをここに教えてください。 – user3200076
どのような問題があるようですか?エラーはありますか? –