The basic principal of this function is to divide the decimal number by two for bit number of times (if that makes sense). So, if bit 30 was to be checked the number would be divided by two 30 times. This is the basic principal in "shifting bits right." To shift bits left, simply multiply by two. The result's mod 2 will determine whether or not the bit is set.
Public Sub Foo()
Dim iVal as integer
iVal = &HA0 '10100000
iVal = RShift16(iVal, 4)
Debug.Print iVal 'Now it's 00001010
End Sub
Function LShift16(w As Integer, c As Integer) As Integer
'Bitwise left shift for short integers.
LShift16 = w * (2 ^ c)
End Function
Function RShift16(w As Integer, c As Integer) As Integer
'Bitwise right shift for short integers.
RShift16 = w \ (2 ^ c)
End Function