public static object BOARD( [ExcelArgument(Description = "の時価情報を取得する", Name = "銘柄コード")] string Symbol, [ExcelArgument(Description = "の時価情報を取得する", Name = "市場コード")] string Exchange) { string ret = null; try { string ResultMessage = Validate.ValidateRequired(Symbol, Exchange); if (!string.IsNullOrEmpty(ResultMessage)) { return(ResultMessage); } Tuple <DateTime, string> tpl; var tplKey = Symbol + "-" + Exchange; if (_boardCache.TryGetValue(tplKey, out tpl)) { if ((DateTime.Now - tpl.Item1).TotalSeconds < 1) { ret = tpl.Item2; } } if (String.IsNullOrEmpty(ret)) { ret = middleware.GetBoard(Symbol, Exchange); _boardCache[tplKey] = Tuple.Create(DateTime.Now, ret); } object array; array = BoardResult.BoadCheck(ret); return(XlCall.Excel(XlCall.xlUDF, "Resize", array)); } catch (Exception exception) { if (exception.InnerException == null) { return(exception.Message); } else { return(exception.InnerException.Message); } } }