Also... i just noticed... ac is a string...

VB Code:
  1. Private Function BitShift(ac() As Byte) As BitVector
  2. Dim i1 As Integer
  3. Dim k1 As Integer
  4. Dim l1 As Integer
  5. Dim TempBitSet1 As BitVector
  6. Set TempBitSet1 = New BitVector
  7.  
  8.     i1 = Len(ac) * 8
  9.     TempBitSet1.NumElements i1
  10.     For j1 = 0 To i1
  11.         k1 = j1 & 7
  12.         l1 = j1 \ 8
  13.         If (ac(l1) And &HFF And 128 - k1) <> 0 Then TempBitSet1.SetBit j1
  14.     Next a
  15.     Set BitShift = TempBitSet1
  16. End Function

or
VB Code:
  1. Private Function BitShift(ac As String) As BitVector
  2. Dim i1 As Integer
  3. Dim k1 As Integer
  4. Dim l1 As Integer
  5. Dim TempBitSet1 As BitVector
  6. Set TempBitSet1 = New BitVector
  7.  
  8.     i1 = Len(ac) * 8
  9.     TempBitSet1.NumElements i1
  10.     For j1 = 0 To i1
  11.         k1 = j1 & 7
  12.         l1 = j1 \ 8
  13.         If (Asc(Mid(ac, l1 + 1, 1)) And &HFF And 128 - k1) <> 0 Then TempBitSet1.SetBit j1
  14.     Next a
  15.     Set BitShift = TempBitSet1
  16. End Function