• ベストアンサー

SPREAD.netで選択セルの合計を求めるには

お世話になります。 環境は、SPRED.net + vb2005 です コードの中でスプレッドの関数を使いたいのですが いろいろ調べましたが分かりません。 ご存知の方、ご教示お願いいたします。 たとえば、EXCELでは、こんな感じです。 Sub test() Dim r As Range Set r = Selection MsgBox Application.WorksheetFunction.Sum(r) End Sub よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.2

#1です。 Dim cols() As Object = New Object(3) {1, 2, 3, 4} Dim sum As New FarPoint.CalcEngine.SumFunctionInfo Dim res As Object = sum.SumFunction.Evaluate(cols) MessageBox.Show(res.ToString()) という使い方ができますので、セルの内容を配列で持ってくればできるかと。 ご参考とまで。

chibita_papa
質問者

お礼

ありがとうございます。 早速使わさせていた炊きます。

その他の回答 (1)

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

SPREADの関数はセルに埋め込んで使用するものです。 たとえばA1からC3のSUMをC4に出力する場合、 Spread.Sheets(n).Cells(3, 2).Formula = "SUM(A1:C3)" と設定し、C4のValueを参照すると結果が得られます。

chibita_papa
質問者

補足

有難うございます。 > SPREADの関数はセルに埋め込んで使用するものです。 EXCELのWorksheetFunctionの様な使い方が出来ないものか と思い質問しました。 現在、次の様にやっています。 Private Sub gdRireki_SelectionChanged(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.SelectionChangedEventArgs) Handles gdRireki.SelectionChanged Dim suryo As Integer = 0 Dim sr As Integer Dim er As Integer If e.Range.Row = -1 Then sr = 0 er = gdRireki.Sheets(0).Rows.Count - 1 Else sr = e.Range.Row er = e.Range.Row + e.Range.RowCount - 1 End If For r As Integer = sr To er suryo += gdRireki.Sheets(0).Cells(r, 7).Value Next r end sub 別に問題なく動いているのですが、もっとスマートに出来ないものかと 質問しました。

関連するQ&A