• ベストアンサー

vbaで変数にマイナスの数値を入れたい場合は

Doubleを使えば良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.4

Double は数値の型の倍精度実数型を表すもので、符号は演算子を使って表します。 マイナス(-)符号付の数値または変数を代入、0-正の値、-1を乗算など、符号の反転など、いろいろ方法があります。 VBA 数値の操作 http://www.tipsfound.com/vba/04006 算術演算子 http://www.239-programing.com/excel-vba/basic/basic042.html

xrkxhzfrzn
質問者

お礼

ありがとうございました。

その他の回答 (3)

  • ubku
  • ベストアンサー率37% (227/608)
回答No.3

Integer でも Long でも、お好きな方をどうぞ。ただし、Integer の表せる整数は、 -32,768 ~ 32,767 です。すなわちExcelの行番号を Integer で表そうとするとオーバーフローします。 Long なら  -2,147,483,648 ~ 2,147,483,647 の範囲の整数を表せるのでOKです。 Double は倍精度浮動小数点数型といって、 負の値は -1.79769313486231×10の308乗 ~ -4.94065645841247×10の-324乗、 正の値は 4.94065645841247×10の324乗 ~ 1.79769313486232×10の308乗 といった非常に広い範囲の小数を表せますが、必ず誤差がついて回るという欠点があります。これは原理的に避けられませんので、計算結果は適切に丸めなければなりません。

xrkxhzfrzn
質問者

お礼

ありがとうございました。

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.2

>Doubleを使えば良いのでしょうか? doubleは倍精度です。 普通にintegerやsingleで負の値を使うことができます。

xrkxhzfrzn
質問者

お礼

ありがとうございました。

  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.1

整数でも浮動小数点でもマイナスは使えます。

xrkxhzfrzn
質問者

お礼

ありがとうございました。

関連するQ&A

  • VBAで変数定義を変更する方法

    Data_Typeという変数の中に文字列doubleが入っていたら、 AIyyという変数をdoubleで定義、 longが入っていたらlongで定義するというプログラムを作りたいのですが If Data_Type = "double" Then Dim AIyy As Double ElseIf Data_Type = "long" Then Dim AIyy As Long End If と書くと、定義が重複しているというエラーが表示されてうまくいきません。 これはどうすれば良いでしょうか? それと一度integerで定義した変数をlongなどに定義を変更したい場合どのようにすれば良いでしょうか?

  • [VBA] "と,を含む文字列を変数に取り込む

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windows7 pro 64bit Office=Excel2010(14.0.7128.5000) ・やりたいこと "aaa、bbb、ccc","2016/07/01","2016/07/01" 上記文字列を変数tmpに取り込む場合どのように記述すればよいでしょうか? ダブルクォートを含む場合はさらにダブルクォートを二つ並べてエスケープする。とあったので、 tmp="""aaa、bbb、ccc","2016/07/01","2016/07/01""" としたのですが通りませんでした。 このような場合の例文を教えていただけますでしょうか。 変数tmpはstring型で宣言しています。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • 積み上げグラフ マイナス数値を含む場合

    よろしくお願いします。 いま、売上と経常利益のグラフ(年度別)を作成しようとしています。 売上高は数値が大きく、経常利益は数値が小さいだけでなく、年度によっては赤字です。 これを積み上げできれいに,表示したいのですが,どうしたらよいでしょうか?単純な積み上げだと、経常利益が少なすぎて線と同化してしまいます。 どうぞよろしくお願いします。

  • Function 構文のなかに変数をいれたい(VBA)

    お願いします。 エクセルVBAにて 下記のようなFunction構文内に変数を設定する方法を 教えてください。 この中で k以外にも a = Sheets("sheet1").Range("E27") b = Sheets("sheet1").Range("E27") この変数を扱いたいのですが。 もしかして他にもfunction構文が必要でしょうか。 Function data(k As Double) Dim sum As Double Dim ct As Integer Dim keisu As Integer Dim a As Double Dim b As Double a = Sheets("sheet1").Range("E27") b = Sheets("sheet1").Range("E27")  以下 略

  • エクセルで数値が0以下になった場合他の数値を1マイナスする

    エクセルでの計算式でどうしても分からないので質問させてもらいます。 セルA1に10という数値、セルA2には20という数値があり、A1から何度か引き算をしていき セルA1の数値が0になった場合セルA2の20から1マイナスさせて その後、またセルA1には10と数値が入るようにしたいのですが 式が全然分からず、困っております。 簡単な計算のようなのですが、よくわからなかったので どのような式を使えば良いのか、わかる方宜しくお願いします。

  • VBAの変数の宣言で数字はすべてDoubleにする

    ご意見教えてください。 VBAの変数の宣言で、数字はすべて、整数も含めてDoubleとして宣言した場合、どんな問題が考えられるでしょうか? また、実行速度が落ちるかも?しれませんが、気になるほど落ちるでしょうか

  • VBAの変数

    いつもお世話になるます。 エクセルvbaでaを変数にしたとき 例 private sub text1() a=inputbox("数字入力") end sub private sub text2() if a=777 then ・・・ みたいなことをしたいのですが、private subが違うと、変数も別物になるようです。どんなprivate subでも共通で使える変数を使うにはどうすればいいのでしょうか? 宜しくお願いします。

  • VBA 変数について

    VBA初心者でございます。 VBAでgrpという変数を設定し、それをキーにしてオートフィルタをしたいです。 以下のコードではエラーがでてしまうのは、なぜでしょうか? どうぞ宜しくお願いいたします。 Sub 絞り込み2() Dim grp Set grp = Worksheets("リスト").Cells(3, 2) Worksheets("マスタ0701").AutoFilterMode = False With Worksheets("マスタ0701").Range(Cells(3, "B"), Cells(Rows.Count, "CK").End(xlUp)) .AutoFilter Field:=13, Criteria1:=grp '.CurrentRegion.Select Range(Cells(3, "B"), Cells(Rows.Count, "CK").End(xlUp)).SpecialCells(xlVisible).Copy Worksheets("検索結果").Range("A1") '.AutoFilter End With End Sub

  • VBA 変数の使い方について

    皆様、こんばんは。 いつもお世話になっているVBAの初心者です。 今回、いくつかのテキストボックスの値を使った複雑な計算を行うために、変数を使おうとしていますが、うまく動いていません。 書こうとしているプロシージャはこちらです。 Private Sub 発電推計1() Dim My発電量1 As Integer Dim My発電量2 As Integer Dim My発電量3 As Integer Range("N37").Formula = "= (" & My発電量1 & " + " & My発電量2 & " + " & My発電量3 & ") * 10 / 10000" Select Case Range("O18") Case 1 My発電量1 = Range("P18") * 15 * 0.1 / 0.0036   ... End Select Select Case Range("O19") Case 1 My発電量2 = Range("P18") * 15 * 0.1 / 0.0036 ... End Select Select Case Range("O20") Case 1 My発電量3 = Range("P18") * 15 * 0.1 / 0.0036 ... End Select End Sub My発熱量の計算式に間違いがあるでしょうが、どう書けばいいかが分かりません。何方か詳しい方に教えていただければ非常に助かります。 どうぞよろしくお願いいたします。

  • VBA 変数を使うべき?

    VBA 変数を使うべき? VBAを独学で勉強中のものです。 エクセルVBAでデータが入っている行数分処理を行いたい場合などに ------------------------------------------------ lastRow = cells(rows.count,1).end(xlup).row for i = 1 to lastRow ・・・ next i ------------------------------------------------ などと最終行を変数に代入して使う場合と ------------------------------------------------ for i = 1 to cells(rows.count,1).end(xlup).row ・・・ next i ------------------------------------------------ などと直接for文の中で指定する場合とでは結果は同じと思うのですが 結果以外の部分で見た場合どちらで行うほうがいいのでしょうか?

専門家に質問してみよう