<엑셀VBA 입문 16강> VBA로 워크시트 함수 활용하기
VBA에서 기존 엑셀 함수(워크시트 함수), 예를 들면 SUM, AVERAGE, SUMIF, SUMIFS, VLOOKUP을 사용할 수 없을까?
결론부터 밝히면 가능하다.
VBA로 기존 엑셀 함수를 쓰기 위해서는 <Application.WorksheetFunction.기존함수> 명령어를 사용하면 된다.
예를 들어 SUM 함수를 쓰고 싶다면 Application.WorksheetFunction.Sum
AVERAGE 함수를 쓰고 싶다면 Application.WorksheetFunction.Average 를 쓰면 된다.
아래 예제코드를 참고하자.

|
Sub 매크로1() Set myRange = Worksheets(“Sheet1”).Range(“A1:C10”) Dim result ‘SUM함수 사용 result = Application.WorksheetFunction.Sum(myRange) ‘AVERAGE함수 사용 result = Application.WorksheetFunction.Average(myRange) End Sub |
결과는 아래와 같이 나올 것이다.

이렇게 VBA에서 엑셀 함수는 사용할 수 있지만, 함수 내부의 내용은 아쉽게도 볼 수 없다.
VBA에서 사용할 수 있는 엑셀 함수에 대한 설명은 마이크로소프트 문서에 잘 나와있다.
링크 : https://docs.microsoft.com/en-us/office/vba/api/excel.worksheetfunction
위 문서에 따르면 사용할 수 있는 함수 목록은 아래와 같다.
웬만큼 쓰는 함수는 다 들어있음을 알 수 있다.
|
AccrInt, AccrIntM, Acos, Acosh, Acot, Acoth, Aggregate, AmorDegrc, AmorLinc, And, Arabic, Asc, Asin, Asinh, Atan2, Atanh, AveDev, Average, AverageIf, AverageIfs, BahtText, Base, BesselI, BesselJ, BesselK, BesselY, Beta_Dist, Beta_Inv, BetaDist, BetaInv, Bin2Dec, Bin2Hex, Bin2Oct, Binom_Dist, Binom_Dist_Range, Binom_Inv, BinomDist, Bitand, Bitlshift, Bitor, Bitrshift, Bitxor, Ceiling, Ceiling_Math, Ceiling_Precise, ChiDist, ChiInv, ChiSq_Dist, ChiSq_Dist_RT, ChiSq_Inv, ChiSq_Inv_RT, ChiSq_Test, ChiTest, Choose, Clean, Combin, Combina, Complex, Confidence, Confidence_Norm, Confidence_T, Convert, Correl, Cosh, Cot, Coth, Count, CountA, CountBlank, CountIf, CountIfs, CoupDayBs, CoupDays, CoupDaysNc, CoupNcd, CoupNum, CoupPcd, Covar, Covariance_P, Covariance_S, CritBinom, Csc, Csch, CumIPmt, CumPrinc, DAverage, Days, Days360, Db, Dbcs, DCount, DCountA, Ddb, Dec2Bin, Dec2Hex, Dec2Oct, Decimal, Degrees, Delta, DevSq, DGet, Disc, DMax, DMin, Dollar, DollarDe, DollarFr, DProduct, DStDev, DStDevP, DSum, Duration, DVar, DVarP, EDate, Effect, EncodeURL, EoMonth, Erf, Erf_Precise, ErfC, ErfC_Precise, Even, Expon_Dist, ExponDist, F_Dist, F_Dist_RT, F_Inv, F_Inv_RT, F_Test, Fact, FactDouble, FDist, FilterXML, Find, FindB, FInv, Fisher, FisherInv, Fixed, Floor, Floor_Math, Floor_Precise, Forecast, Frequency, FTest, Fv, FVSchedule, Gamma, Gamma_Dist, Gamma_Inv, GammaDist, GammaInv, GammaLn, GammaLn_Precise, Gauss, Gcd, GeoMean, GeStep, Growth, HarMean, Hex2Bin, Hex2Dec, Hex2Oct, HLookup, HypGeom_Dist, HypGeomDist, IfError, IfNa, ImAbs, Imaginary, ImArgument, ImConjugate, ImCos, ImCosh, ImCot, ImCsc, ImCsch, ImDiv, ImExp, ImLn, ImLog10, ImLog2, ImPower, ImProduct, ImReal, ImSec, ImSech, ImSin, ImSinh, ImSqrt, ImSub, ImSum, ImTan, Index, Intercept, IntRate, Ipmt, Irr, IsErr, IsError, IsEven, IsFormula, IsLogical, IsNA, IsNonText, IsNumber, ISO_Ceiling, IsOdd, IsoWeekNum, Ispmt, IsText, Kurt, Large, Lcm, LinEst, Ln, Log, Log10, LogEst, LogInv, LogNorm_Dist, LogNorm_Inv, LogNormDist, Lookup, Match, Max, MDeterm, MDuration, Median, Min, MInverse, MIrr, MMult, Mode, Mode_Mult, Mode_Sngl, MRound, MultiNomial, Munit, NegBinom_Dist, NegBinomDist, NetworkDays, NetworkDays_Intl, Nominal, Norm_Dist, Norm_Inv, Norm_S_Dist, Norm_S_Inv, NormDist, NormInv, NormSDist, NormSInv, NPer, Npv, NumberValue, Oct2Bin, Oct2Dec, Oct2Hex, Odd, OddFPrice, OddFYield, OddLPrice, OddLYield, Or, PDuration, Pearson, Percentile, Percentile_Exc, Percentile_Inc, PercentRank, PercentRank_Exc, PercentRank_Inc, Permut, Permutationa, Phi, Phonetic, Pi, Pmt, Poisson, Poisson_Dist, Power, Ppmt, Price, PriceDisc, PriceMat, Prob, Product, Proper, Pv, Quartile, Quartile_Exc, Quartile_Inc, Quotient, Radians, RandBetween, Rank, Rank_Avg, Rank_Eq, Rate, Received, Replace, ReplaceB, Rept, Roman, Round, RoundDown, RoundUp, Rri, RSq, RTD, Search, SearchB, Sec, Sech, SeriesSum, Sinh, Skew, Skew_p, Sln, Slope, Small, SqrtPi, Standardize, StDev, StDev_P, StDev_S, StDevP, StEyx, Substitute, Subtotal, Sum, SumIf, SumIfs, SumProduct, SumSq, SumX2MY2, SumX2PY2, SumXMY2, Syd, T_Dist, T_Dist_2T, T_Dist_RT, T_Inv, T_Inv_2T, T_Test, Tanh, TBillEq, TBillPrice, TBillYield, TDist, Text, TInv, Transpose, Trend, Trim, TrimMean, TTest, Unichar, Unicode, USDollar, Var, Var_P, Var_S, VarP, Vdb, VLookup, WebService, Weekday, WeekNum, Weibull, Weibull_Dist, WorkDay, WorkDay_Intl, Xirr, Xnpv, Xor, YearFrac, YieldDisc, YieldMat, Z_Test, ZTest, Forecast_ETS, Forecast_ETS_ConfInt, Forecast_ETS_Seasonality, Forecast_ETS_STAT, Forecast_Linear |
이어지는 글 <엑셀VBA 입문 17강> 변수를 같은 이름으로 사용하면 섞일까? (지역변수와 전역변수) :
https://blog.naver.com/bb_/221417490850
이어지는 글 <엑셀VBA 입문 18강> indexOf 함수의 확장 https://blog.naver.com/bb_/221650929713