プロが教える店舗&オフィスのセキュリティ対策術

VBAを使ってバイトの定義された変数の引き算を行いたいのですが
以下のコードをするとオーバーフローしてしまいます。


Sub test()

Dim a As Byte
Dim b As Byte
Dim c As Integer

a = 50
b = 100


c = a - b


End Sub



この場合、

Dim d As Integer
d = a


c = d - b


とするしかないですか?
もっと良い方法があれば教えてください。

A 回答 (2件)

byte型は0~255の数値のみです。

つまり負の数は駄目です。一方をInteger型にすれば良いので、
c = Cint(a)-b
ですね。
c = a+0-b
でもいいけど(Interger型である0と演算することで、結果がInteger型になる)。
    • good
    • 0

c = CInt(a) - b


としてください。
    • good
    • 0

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