Работают оба варианта
Sub Test_BitOperations()
' NOTE: Allowed input value combinations: 1, 2, 3, 4, 5, 6, 7
' 1st option is 1 (= 2 ^ 0)
' 2nd option is 2 (= 2 ^ 1)
' 3rd option is 4 (= 2 ^ 2)
' Combinations: 3 = 1 + 2
' 6 = 1 + 5
' 7 = 1 + 2 + 4
Dim nValue&: nValue = 6 ' <- Set input value here
Dim aOptions&(1 To 3), i%
For i = 1 To 3
aOptions(i) = (nValue Mod 2 ^ i) \ 2 ^ (i - 1)
Next
MsgBox Join(aOptions, Chr(10))
Erase aOptions()
ReDim aOptions&(2)
Dim nNewValue&
For i = 0 To 2
aOptions(i) = Abs(((2 ^ i) And nValue) > 0)
If ((2 ^ i) And nValue) > 0 Then
nNewValue = nNewValue + 2 ^ i
End If
Next
MsgBox Join(aOptions, Chr(10)) & Chr(10) _
& Chr(10) & nNewValue
End Sub