VBA Tipp: Long-Variable als Ganzzahl ohne Vorzeichen

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte mit einer Long-Variablen als Ganzzahl ohne Vorzeichen rechnen.

Lösung

VBA kennt keinen Datentyp "Unsigned", man muss daher die Variable in eine Double-Gleitkommazahl wandeln:

Public Function ConvUnsignedToDouble(U As Long) As Double
  If U >= 0 Then
    ConvUnsignedToDouble = CDbl(U)
  Else
    ConvUnsignedToDouble = 4294967296# + CDbl(U)
  End If
End Function

Aufruf

ConvUnsignedToDouble(&HFFFFFFFF)
 
' Rückgabe:
 4294967295