[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでべき乗のエラーについて』(しょうこ)
過去ログを検索したのですが、見つからなかったので質問させてください。
変数に数値が代入されているものにべき乗すると、
「プロシージャの呼び出し、または引数が不正です。」と出てしまい、計算がされません。
対象が数値そのものだと計算されるのですが、変数だとエラーになってしまうのはなぜなのでしょうか。
回避する方法をご存じでしたらご教授いただけないでしょうか。
よろしくお願いいたします。
Dim tmp As Double tmp = -0.12
Debug.Print -0.12 ^ 0.34 '-0.486319432578514 Debug.Print tmp ^ 0.34 'プロシージャの呼び出し、または引数が不正です。
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
-0.12 ^ 0.34 は -(0.12 ^ 0.34) という計算をしています。
(-0.12) ^ 0.34 は複素数になりますので
Dim tmp As Double tmp = -0.12 Debug.Print WorksheetFunction.ImPower(tmp, 0.34) (´・ω・`) 2023/08/29(火) 13:47:12
迅速な回答をありがとうございます。
そもそもの計算の仕方が違ったのですね…。
お恥ずかしながら複素数という言葉も初めて聞きました…。
WorksheetFunction.ImPowerを使用します。
ありがとうございました。
(しょうこ) 2023/08/29(火) 13:58:23
本当に複素数の計算をしたいのならいいのですが、 -(0.12 ^ 0.34) こっちの計算をしたいなら
Dim tmp As Double tmp = -0.12 Debug.Print Sgn(tmp) * Abs(tmp) ^ 0.34 です (´・ω・`) 2023/08/29(火) 14:29:42
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.