電子書籍の厳選無料作品が豊富!

 VB初心者です。 Excelからデータをグリッドに取り込んでグリッドで計算しているのですが、x(i, j) = MSFlexGrid1.TextMatrix(i, j)
の文がいろいろ入力してみたのですが、エラーが出てしまいます。
 それと計算するときに最初のセルを(3,3)などにしたい時にどうすれば良いのかわかりません。 教えていただければ幸いです。よろしくお願いします。

Dim goukei(10) As Double
Dim x(20, 10) As Double


For i = 1 To 20
For j = 1 To 10

x(i, j) = MSFlexGrid1.TextMatrix(i, j)

Next j
Next i



For j = 1 To 10

goukei(j) = 0

Next j


For i = 1 To 20
For j = 1 To 10

goukei(j) = goukei(j) + x(i, j)

Next j
Next i


For j = 1 To 10

Text1.Text = goukei(j)

Next j

A 回答 (1件)

VB6ですか?


こういう場合エラーメッセージをちゃんと書きましょう
たぶん「型が一致しません」だと思うのですが・・・

TextMatrix(i, j) で得られるのはString型の値です。
代入先がDouble型ですので数値に変換できなければ上記のエラーが発生します

Private Const OffsetR = 3
Private Const OffsetC = 3
Private InText as String

Dim goukei(10) As Double
Dim x(20, 10) As Double

For i = 1 To 20
 For j = 1 To 10
  InText = MSFlexGrid1.TextMatrix(i + OffsetR, j + OffsetC)
  'InTextが数値に変換可能か調べる
  If IsNumeric(InText) Then
   x(i, j) = CDbl(InText)
   Else
   x(i, j) = 0
  End If
 Next j
Next i
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!