Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


22417 / 76738 ←次へ | 前へ→

【59703】Re:「アプリケーション定義またはオブジェクト定義のエラー」について
質問  monyo  - 09/1/3(土) 8:18 -

引用なし
パスワード
   ▼question さん:

ご回答ありがとうございます。
すみません。情報がたりませんね。

>>「アプリケーション定義またはオブジェクト定義のエラーです」
>>
>>というエラーが出てしまいます。現在のコードは以下になります。
>>
>>Worksheets("Sheet2").Cells(n, j + 1).Value = u
>>Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z
>
> エラーはどの行で発生するのですか?
上の2行でエラーが発生しています。

> コードは2行だけなんですか?
> uとかzはどうやって作ったのですか?
全体のコードは以下になります。

Sub buturis()
Dim n As Integer 'NCブロック数
Dim s As Double '一刃当たり送り
Dim v As Double '切削速度
Dim hasu As Integer '刃数
Dim deep As Double '切り込み深さ
Dim d As Double '1°回転当たりの切込み深さ
Dim a() As Double
Dim kika As Integer '幾何シミュレーションから算出
Dim kt As Double
Dim kr As Double
Dim ft() As Double
Dim fr() As Double
Dim fu() As Double
Dim fv() As Double
Dim u As Double
Dim z As Double
Dim m As Double
Dim e As Double
Dim L As Double
Dim kaiten As Double

Dim r As Double 'カッタ半径
Dim cl As Double
Dim engage As Double
Dim ac As Double 'アークコサイン

Sheets("Sheet1").Activate
r = Cells(3, 3).Value / 2 'アークコサイン算出↓
cl = Cells(10, 3).Value
engage = 1 - (cl / r)
ac = WorksheetFunction.Acos(engage) 'アークコサイン算出↑

s = Cells(5, 3).Value
v = Cells(4, 3).Value
hasu = Cells(6, 3).Value
deep = Cells(9, 3).Value
L = 60
ReDim a(hasu, 361)
ReDim ft(hasu, 361)
ReDim fr(hasu, 361)
ReDim fu(hasu, 361)
ReDim fv(hasu, 361)
If s <= 0.03 Then
 ks = 0.03
Else
 ks = s
End If

d = deep / (360 / hasu)
Cells(3, 5).Select
n = 1
Do While Selection.Cells(n, 1) <> ""
n = n + 1
Loop
n = n + 1

For b = 3 To n Step 1
 kaiten = Cells(n, 10).Value * Cells(8, 3).Value '1ブロック当たりの回転数
 For g = 1 To kaiten Step 1
  For i = 1 To hasu Step 1
   For j = 0 To 360 Step 1
    If j / 180 <= ac Then
     kika = 1
    Else
     kika = 0
    End If
    For h = 0 To deep Step d
     a(i, j) = s * Sin(j / 180) * kika
     If j <= 7.2 And Cells(3, 10).Value <= j / Cells(8, 3).Value Then
      kp = 1.2
     Else
      kp = 1
     End If
     kt = 2165 * kp * (ks / s) ^ 0.5 * (1 - 0.14 * v)
     kr = 1245 * kp * (ks / s) ^ 0.5 * (1 - 0.3 * v)
     ft(i, j) = kt * a(i, j)
     fr(i, j) = kr * a(i, j)
     fu(i, j) = (fr(i, j) * Sin(j / 180) - ft(i, j) * Cos(j / 180))
     fv(i, j) = (fr(i, j) * Cos(j / 180) - ft(i, j) * Sin(j / 180))
     m = fv(i, j) * (L - h)
     e = 0.165 * 1000 * fv(i, j) + 1.04 * 10 ^ -7 * m * (L - h)
     If i < 1 Or j < 0 Then
      i = i + 1
      j = j + 1
     End If
     u = u + fu(i, j)
     z = z + fv(i, j)
    Next
    Worksheets("Sheet2").Cells(n, j + 1).Value = u
    Worksheets("Sheet2").Cells(n + 1, j + 1).Value = z
   Next
  Next
 Next
Next

End Sub


>>また、ステップインで変数の値を調べてみたところ、
>>n=4
>>j=1
>>u=0
>>z=0
>>となっていましたが、sheet2には
>>4098.34864786929や
>>-5235.01068699772など、
>>計算された数値が入力されていました。
>入力?
すみません。出力でした。

>どのセルですか?
sheet2の(3,1)から(3,361)と、(4,1)から(4,361)までです。

長くなって申し訳ありませんが、ご指摘お願い致します。
0 hits

【59698】「アプリケーション定義またはオブジェクト定義のエラー」について monyo 09/1/2(金) 23:17 質問
【59700】Re:「アプリケーション定義またはオブジェ... question 09/1/3(土) 0:25 回答
【59703】Re:「アプリケーション定義またはオブジェ... monyo 09/1/3(土) 8:18 質問
【59705】Re:「アプリケーション定義またはオブジェ... かみちゃん 09/1/3(土) 8:35 発言
【59706】Re:「アプリケーション定義またはオブジェ... かみちゃん 09/1/3(土) 8:54 発言
【59708】Re:「アプリケーション定義またはオブジェ... monyo 09/1/3(土) 9:44 お礼
【59707】Re:「アプリケーション定義またはオブジェ... monyo 09/1/3(土) 9:28 お礼
【59709】Re:「アプリケーション定義またはオブジェ... かみちゃん 09/1/3(土) 9:51 発言
【59710】Re:「アプリケーション定義またはオブジェ... monyo 09/1/3(土) 11:35 お礼
【59702】Re:「アプリケーション定義またはオブジェ... かみちゃん 09/1/3(土) 7:25 発言
【59704】Re:「アプリケーション定義またはオブジェ... monyo 09/1/3(土) 8:23 お礼

22417 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free