人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAで質問です。変数Aに数値、変数Bにも数値がはいっています。X=A-Bの形にしたいです。ただ変数AとBの値がマイマスだった場合、欲しい値が手にはいりません。つまり、X=-A--Bという形になってしまいます。この場合はマイマスにしたいです。
ただ式、A-Bという形は変えません。関数をつかってもいいので、なんとかマイナスの値を取得したいのですが方法をお教えください。たとえばA=-1,B=-2,X=-3の値を取得したいのですが、式にあてはめると-1--2になってしまい望んだ値が得ることができません。

●質問者: akaired
●カテゴリ:コンピュータ
✍キーワード:VBA マイナス 変数 関数
○ 状態 :終了
└ 回答数 : 3/4件

▽最新の回答へ

1 ● pahoo
●27ポイント

A = (-1), B = (-2) のとき

X = A - B = (-1) - (-2) = (-1) + 2 = (+1)

となるわけで、これは四則計算の定義ですから、式は(プログラムは)間違っていません。


X = (-3) にするためには、

X = A + B

という別の式で計算しなければなりません。


ここで、別の式を適用するための場合分けが必要です。

VBAではif文で場合分けします。関数を使う必要はありません。

ご質問から推測すると、

A < 0 かつ B < 0 の場合 X = A + B
それ以外の場合 X = A - B

という2つの場合分けが必要と思われますが、他の場合分けは必要ないのですか?

たとえば、「A < 0 または B < 0 の場合」はどうしますか?


2 ● Mook
●27ポイント

変数に対して符号反転したい場合は -A とはせずに -1 * A とします。


変数の内容に応じて 処理を変えたい場合には前処理を行うか、条件判定をする必要があります。

変数Aは正でも負でもそのままでよいのでしょうか。


であれば、絶対値を取る関数 Abs を使用し

 X = A - Abs( B )

という式でよいかと思います。


3 ● fester
●26ポイント

IIf関数を使用したら良いです

Office TANAKA - VBA講座:IIf関数

X = IIf(A < 0 And B < 0, A + B, A - B)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ