重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

VBAを使っていて第二種ベッセル関数を使いたいのですが
worksheetfunctionだと計算に時間がかかるため
これを使わずに計算する方法を教えてください、

以前、どこかのwebページで近似式を見かけたような気がするのですが
どこかに書かれてあるページがあれば教えてください。

A 回答 (1件)

ベッセル関数も第二種ベッセル関数も数式はまったく理解できないのですが


ネット検索で見たこのベッセル関数式の場合、セルに書き出すのですが
100行目まで、I列までだと
当方の7年ほど前の古いノートPC(CeleronM 1.86Ghz)でも
グラフ描画を含めて0.2秒かからずに終わります。
http://homepage3.nifty.com/rikei-index01/excel/e …

科学技術計算などで膨大な量だとだめかもしれませんが
計算結果だけなら0.1秒でセルに書き出されます。
 マクロの記録だけくらいなのでもっときちんと書いたほうがいいのですが。 
dim i as single
Application.ScreenUpdating = False
Range("C6:I100").ClearContents
'
Range("c6").Activate
ActiveCell.FormulaR1C1 = "=BESSELJ(RC2,R5C)"
Range("C6").Select
Selection.AutoFill Destination:=Range("C6:C100")
Range("C6").Select
Selection.AutoFill Destination:=Range("C6:I6"), Type:=xlFillDefault
Range("C6:I6").Select
Selection.AutoFill Destination:=Range("C6:I100")

Range("B5").Select
Application.ScreenUpdating = True

For i = 0.1 To 1 Step 0.1
Range("b7").Value = i
Range("B6:B7").AutoFill Destination:=Range("B6:B100")
Next
10回書き換えで2.1秒ほどかかりました。

関数も得られたデータもどうつかうのかわかりませんが
お役に立てれば。
    • good
    • 0

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