|
kogure さん:
とおりすがり さん:
こんばんは。
>16進数は分かりませんが、&H00A000B0は10進数で表すといくつになりますか?
とおっしゃっているのは、
>> Cells(3, 1).Value = CInt("&H" & (Cells(2, 1).Value))
この答えがIntegerの範囲を超えているからだと思います。
Cint---->CLngに変えて見てください。
とりあえず、エラーは回避できます。
>>また変換後の数値をマイナスにしないようにするにはどうすればよいのでしょうか?
N進数を---10進数に変換する計算を算数でやってしまうのが簡単そうですよ!!
Sub main()
Dim decnum As double
Dim hexnum As string
test1 = Cells(1, 1).Value
test2 = Cells(1, 2).Value
Cells(2, 1).Value = test1 + test2
hexnum = Trim(Cells(2, 1).Value)
For i = 0 To Len(hexnum) - 1
decnum= decnum + (16 ^ i) * Val("&H" & Mid(hexnum , Len(hexnum) - i, 1))
Next i
Cells(3, 1).Value = decnum
End Sub
|
|