
No.1ベストアンサー
- 回答日時:
演算子が計算される優先順序の違い,言い換えるなら単純に設計に違いです。
ワークシートの計算における順番:
--エクセルのヘルプより抜粋-----------
1 つの数式で複数の演算子を使用する場合、次の表に示した順序で計算が実行されます。数式に同順位の演算子が含まれる場合 (たとえば、乗算演算子と除算演算子が含まれる場合)、左から右の順に計算が実行されます。
: (コロン)
(スペース 1 つ)
, (カンマ)
参照演算子
– 負の値 (-1 など)
% パーセンテージ
^ べき算
* または / 乗算または除算
+ または - 加算または減算
& 文字列の結合または連結
= < > <= >= <> 比較演算子
------------
以上によりマイナス負号が先に計算され(-2),その2乗が計算されます。
VBAの計算における順番:
--VBAのヘルプより抜粋-----------
異なる種類の演算子が 1 つの式の中で使われている場合、算術演算子、比較演算子、論理演算子の順序で評価されます。(中略) 算術演算子および論理演算子は、次に示す順序で評価されます。
算術演算子
指数演算 (^)
マイナス符号 (-)
乗算と除算 (*、/)
整数除算 (\)
剰余演算 (Mod)
加算と減算 (+、-)
文字列連結 (&)
---------
以上により2乗(^2)が先に計算され,そのマイナスが計算結果になります。
有難う御座います。
ワークシートで正しく計算させるには以下のようにする必要があるようですね。
=-((2)^2);-4
=((-2)^2);4
またワークシートの式をそのままVBAに渡すときは要注意ですね。
純粋に数学的な表記が出来ないのは不便・・というか利用者にとっては殆どバグに近いような気がします
なぜそうなっているのか・・という新たな疑問が持ち上がります
因にMACのNumbersやOpen Officeのスプレッドシートも同じ仕様でした。
No.2
- 回答日時:
VBAに関することは知りませんが…
Excel 2002 のヘルプ「演算子の優先順位」によれば、次のように記載されています。
演算子 内容
----- --------
– 負の値 (-1 など)
% パーセンテージ
^ べき算
* または / 乗算または除算
+ または - 加算または減算
従って、私は次のように理解しています。
=10-2^2 あるいは =0-2^2 の場合、「-」は減算を意味しているので、それぞれ 6 あるいは -4 を返します。つまり、=10-(2^2) あるいは =0-(2^2) と同じこと。
しかし、=-2 の「-」は直後の数値が負であることを意味しているので、式 =-2^2 は =(-2)^2 と同じ計算をするために 4 が返るのだ、と。
有難う御座います。
VBAとワークシートで「演算の優先順位」の仕様が異なる事にすごく違和感があります。
仕様に注意し数学的表記通りに演算されていないという事があるという事を肝に銘じます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) アンケート集計用VBAについて教えて下さい。 約100人にアンケート内容が入ったExcelファイルを 1 2022/07/27 13:12
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- Excel(エクセル) Excel VBA 指定セルに入力されているパスからシートをコピーして別のブックに転記するVBAのコ 2 2022/04/19 15:53
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Excel(エクセル) エクセルで計算結果が0でないときのみセルを更新したい 4 2022/07/30 11:58
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) ExcelのVBAで再帰処理を使って、1〜10までの整数の和と10の階乗の計算をしたいです。どなたか 1 2022/11/24 10:59
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【有効数字について】 授業で、...
-
有効数字計算 確定した値を含む
-
何マイル?!
-
EXCELでの計算の仕方を教えてく...
-
計算に使うエクセルの数値の表...
-
【エクセル】四捨五入・二捨三...
-
1秒は何ミリ秒とか、単位変換の...
-
HDDを激安で購入できる方法?
-
携帯電話について詳しい方お願...
-
ノートパソコンの容量について
-
パソコン用語
-
SDメモリーカードについて
-
LANの100Mbpsのスピード
-
基本情報技術者試験のビットに...
-
特殊なテキストエディタ
-
スマートフォンAndoroid の R...
-
W2KのKって、KBのK?
-
ワード文章を打つ
-
CPU、Z80からステート数から...
-
プログラム言語FortranとCの違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【有効数字について】 授業で、...
-
かけ算(わり算)と足し算(引き算...
-
【エクセル】四捨五入・二捨三...
-
エクセル2010で2進数の計算をす...
-
16bitはダイナミックレンジが97...
-
有効数字は最後答えを出すとき...
-
1秒は何ミリ秒とか、単位変換の...
-
1TBHDDに音楽ファイルは何ア...
-
12万の5%はいくらですか?
-
VBAで時間の型と計算方法教えて...
-
ブルーレイディスクの容量に関...
-
有効数字
-
8進数 8進数の47+32の答えを 8...
-
有効数字について
-
有効数字
-
計算の仕方(物理)
-
ここの計算はどう工夫して計算...
-
ラジアンの変換について
-
4.7GBのDVD-Rをマウントしたら…
-
accessのデータ型について
おすすめ情報