рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВред
рдЖрдЬ рдореИрдВ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк R рднрд╛рд╖рд╛ рдФрд░ рдСрдлрд┐рд╕ рд╕реВрдЯ MS Excel 2010 рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЖрдк R рдлрдВрдХреНрд╢рдиреНрд╕ рдХреА рдорджрдж рд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди VBA рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░
RExcel рдРрдб-рдЗрди рдореЗрд░реА рдорджрдж рдХрд░реЗрдЧрд╛ред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдпрд╛ рдмрдВрдж рдЖрд╕рд╛рдиреА рд╕реЗ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗрдмрд╕рд╛рдЗрдЯред
рдЯрд╛рд╕реНрдХ рд╕реЗрдЯрд┐рдВрдЧ рдФрд░ рдкреНрд░реАрд╕реЗрдЯ
рд╡реАрдмреАрдП рд╕реЗ
рдЖрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП
, рд╣рдореЗрдВ рдПрдХреНрд╕реЗрд▓ (
Alt + F11 ) рдореЗрдВ
"рд╡рд┐рдЬрд╝реБрдЕрд▓ рдмреЗрд╕рд┐рдХ рдПрдбрд┐рдЯрд░" рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ
RExcelVBAlib рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк
рдЯреВрд▓реНрд╕-> рд╕рдВрджрд░реНрдн рдкрд░ рдЬрд╛рдХрд░ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдЖрдЗрдЯрдо рдХреЛ рдЯрд┐рдХ рдХрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ
рд░реЗрдВрдердлреЗрд╕ рдХреНрд▓рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдорд╛рд░реЗ рдмрдВрдбрд▓ рдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИред
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ 16 рджрд┐рд╕рдВрдмрд░, 2011 рд╕реЗ 20 рдорд╛рд░реНрдЪ, 2014 рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдлрд┐рдирдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбреЙрд▓рд░ рдХреЗ рдЙрджреНрдзрд░рдгреЛрдВ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд▓рд┐рдпрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, R рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдорд╛рд╕рд┐рдХ рдЙрджреНрдШрд╛рдЯрди рдореВрд▓реНрдп (
'OPEN' ) рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЕрдиреБрд╕реВрдЪреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред
рдЖрд░рдИрдПрдХреНрд╕рд╕реАрдПрд▓ рд╕реЗ рд░рд┐рдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд░ рдкрд░ рдПрдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВ рдЬреЛ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдЪрд╛рдПрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
agg_price.R
(рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред
library(zoo) agg_price_func <- function(x) { y <- zoo(x$OPEN, as.Date(as.character(x$DATE),"%Y%m%d")) new_y <- aggregate(y, as.yearmon, mean) plot(new_y) return (new_y) }
рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╣рдо
zoo
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдлрд┐рд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдПрдВ рдЬреЛ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
- рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдХреМрди рд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рджрд┐рдирд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд 'рджрд┐рдирд╛рдВрдХ' рдХреЙрд▓рдо рдХреЗ рдорд╛рди рд╣реИрдВред рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕реНрддрд░реЛрдВ рдХрд╛ рдорд╛рди рд╕реНрддрдВрдн ' OPEN ' рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред
- рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдЧреНрд░реАрдЧреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдорд╣реАрдиреЗ рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдореЗрдВ рджреИрдирд┐рдХ рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдорд╣реАрдиреЛрдВ рддрдХ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдорд╛рд╕рд┐рдХ рдорд╛рдиреЛрдВ рдХрд╛ рдЧреНрд░рд╛рдлрд╝ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ
- рд╣рдо рдорд╛рд╕рд┐рдХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рддреЛ, рд╣рдордиреЗ рдЖрд░ рдХреЛрдб рд▓рд┐рдЦрд╛ред рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ
VBA рд╕реЗ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд┐рдзрд┐ 1. рдлрд╝рдВрдХреНрд╢рди рдХрдорд╛рдВрдб рдХрд╛ рд▓рд╛рдЗрди-рдмрд╛рдп-рд▓рд╛рдЗрди рдирд┐рд╖реНрдкрд╛рджрдиред
рдпрд╣ рд╡рд┐рдзрд┐ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдХреЛрдб рдХреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
Sub call_r_func() RInterface.PutDataframe "open_price", Range("USD!A1:C535") RInterface.RRun "library(zoo)" RInterface.RRun "price <- zoo(open_price$OPEN, as.Date(as.character(open_price$DATE),""%Y%m%d""))" RInterface.RRun "agg_price <- aggregate(price, as.yearmon, mean)" RInterface.RRun "plot(agg_price)" RInterface.InsertCurrentRPlot Range("OPEN_PRICE!A1"), widthrescale:=0.5, heightrescale:=0.5, closergraph:=True End Sub
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
Rinterface рд╕реЗ 3 рдХрд╛рд░реНрдпреЛрдВ
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :
PutDataframe
RRun
InsertCurrentRPlot
PutDataframe
рдкреНрд░рдХрд╛рд░ рдХреЗ R рдЪрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
PutDataframe
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЪрд░ рдХрд╛ рдирд╛рдо рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЙрди рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рд╣реЛрдЧреА рдЬреЛ рдЪрд░ рдореЗрдВ рд╣реЛрдВрдЧреЗред
RRun
рджреБрднрд╛рд╖рд┐рдпрд╛ рдЖрд░ рдХреА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
InsertCurrentRPlot
рд╕реВрдЪреА рдореЗрдВ рдЕрдВрддрд┐рдо рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ MS Excel рдХрд╛рд░реНрдпрдкрддреНрд░рдХ рдореЗрдВ R рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╕реЗрд▓ рдЗрд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рдл рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЪреМрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдФрд░
рдКрдБрдЪрд╛рдИ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд▓реЙрдЯ рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 50%)ред
рдХреНрд▓реЛрдЬрд░рдЧреНрд░рд╛рдл рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐
plot()
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдл рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рдж,
call_r_func () рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЖрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ред
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐
рд╕рднреА рдХреЛрдб рдПрдХ VBA рдореИрдХреНрд░реЛ рдореЗрдВ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВ , рдЬреЛ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдиреБрдХрд╕рд╛рди рдЖрд░ рдХреЛрдб рдХреЗ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рдзрд┐ 2. рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
Sub call_r_impotr_func_without_print() RInterface.RunRFile "D:/agg_price.R" RInterface.RunRCall "agg_price_func", AsSimpleDF(Range("USD!A1:C535")) RInterface.InsertCurrentRPlot Range("OPEN_PRICE!H1"), widthrescale:=0.5, heightrescale:=0.5, closergraph:=True End Sub
рдЗрд╕ рдХреЛрдб рдореЗрдВ 3 рдирдП рдХрд╛рд░реНрдп рд╣реИрдВ:
RunRFile
AsSimpleDF
RunRCall
рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
RunRFile
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
AsSimpleDF
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЪрдпрдирд┐рдд рд╕реАрдорд╛ рдХреЛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкреНрд░рдХрд╛рд░ (
AsSimpleDF
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
RunRCall
рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (
рд░рд┐рдЯрд░реНрди (...) рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ)ред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдЗрд╕рдХрд╛ рдХреЛрдб рдЖрд░ рд╣реИред рдмрд╛рдж рдХреЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рд╣реИ)ред
рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рд╡рд░рдг рд╕реЗ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА
call_r_impotr_func_without_print () рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░реА
agg_price.R рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИред рдлрд┐рд░ рдпрд╣ рджрд┐рдП рдЧрдП рд░реЗрдВрдЬ рд╕реЗ рдбреЗрдЯрд╛
рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП agg_price_func рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рджреА рдЧрдИ рд╢реАрдЯ рдкрд░ рдПрдХ рдЧреНрд░рд╛рдл рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рд▓рд╛рдн
рдЖрд░ рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛрдб рдХреА
рд╕рд╛рджрдЧреА рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдПрдбрд┐рдЯрд░ рдпрд╛ IDE рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Minuses рдореЗрдВ рд╕реЗ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп, рд╣рдореЗрдВ 2: xls рдФрд░ r рдорд┐рд▓рддрд╛ рд╣реИред
рд╡рд┐рдзрд┐ 3. рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдПрдХ рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛрдб:
Sub call_r_impotr_func_with_print() RInterface.RunRFile "D:/agg_price.R" RInterface.GetRApply "agg_price_func", Range("OPEN_PRICE!A19"), AsSimpleDF(Range("USD!A1:C535")) RInterface.InsertCurrentRPlot Range("OPEN_PRICE!D19"), closergraph:=True End Sub
рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдорд╛рдореВрд▓реА рдЕрдВрддрд░ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЗрд╕рдХреЗ рдмрдЬрд╛рдп
RunRCall
рдХреЛ
RunRCall
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ (
рд░рд┐рдЯрд░реНрди (...) рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдФрд░ рди рдХреЗрд╡рд▓ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдпрджреНрдпрдкрд┐ рдЬреЛ рд▓реЛрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдХрд╛рд░реНрдп рдХреА
рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдВрддрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
GetRApply
рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рдж, рдЙрди рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╢реНрд░реЗрдгреА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд╣рд╛рдВ рдлрд╝рдВрдХреНрд╢рди рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╛рдкреНрдд рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрди VBA рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реА рдкрд░реАрдХреНрд╖рд╛ рдкрддреНрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рд╡реАрдмреАрдП рд╕реЗ
рдЖрд░ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рднреА рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ RExcel рдмрд┐рдирд╛ VBA рдХреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐
рд░реБрдВрдЯрдлреЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ
рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ , рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдорд╛рд╕реНрдЯрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧреА рдЬреЛ рдиреНрдпреВрдирддрдо рд╕рдордп рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓
GitHub рдкрд░ рдореБрдЭрд╕реЗ рд▓реА рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред