|
▼角田 さん:
>こんにちは。
>>計算時間が遅くお手上げ状態です。
>50000*3*50=750万回ですか?
>
>先ず、ここには記載されてませんが全ての変数は
>Dim文で型宣言(変数宣言)してありますか?
>していなければ全てVariant型になりますから、
>LongなりDoubleなり型宣言してあるものに比べれば
>遅いでしょう。
>
>> y(n, g, a) = -Cells(5, a).Value * Dt
>> xy(n, g, a) = 2 * Cells(5, a).Value * w * h * Dt
>> ElseIf n > 0 Then
>> x(n, g, a) = 〜 + b11 * Cells(n + 4,a).Value + b12 * Cells(n + 5, a).Value)
>> y(n, g, a) = 〜 + b21 * Cells(n + 4, a).Value + b22 * Cells(n + 5, a).Value)
>↑で使っているセル範囲(A1:C50005)を処理に入る前に
>一括して配列に取り込んでおけばセルへのアクセスが減って
>早くなるでしょう。
>Dim vntCell As Variant
>vntCell = Worksheets("Sheet1").Range("A1:C50005").Value
返信ありがとうございます。
750万回にさらに5を掛けるので2250万回で、変数は以下のものを使用しております。
Dim t(50) As Single, w As Single, w2 As Single, hw As Single, wd As Single, wdt As Single, n As Integer
Dim h As Single, e As Single, cwdt As Single, swdt As Single, a11 As Single, a12 As Single, a21 As Single, a22 As Single
Dim ss As Single, cc As Single, s1 As Single, c1 As Single, s2 As Single, c2 As Single, s3 As Single, c3 As Single
Dim Dt As Single, b11 As Single, b12 As Single, b21 As Single, b22 As Single, x(13000, 5, 3) As Variant, y(13000, 5, 3) As Variant, xy(13000, 5, 3) As Variant
Dim xmax(50, 5, 3) As Variant, ymax(50, 5, 3) As Variant, xymax(50, 5, 3) As Variant
Dim s As Byte, g As Byte, a As Byte
セル範囲を取り込む方法で、個々のセルの値を選択して計算することは出来るんですか?5万回のところはExcelでこのようになっているのですが
NS1 EW1 UD1
200
IBRH14 2004/11/29 03:32:00
Gal Gal Gal
0 0 0.02
0.01 0 0.03
0.01 0 0.03
0.02 0 0.03
0.02 0 0.03
0.02 0 0.02
|
|