First of all there is a small error in Michael's code
VB Code:
  1. 'This line
  2. ' B = B Or 2 ^ (K - 1)
  3. 'Should be
  4. B = B Or 2 ^ (8 - K)
Try this to send all four bytes at once
VB Code:
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4.     Dim sdata As Variant
  5.     sdata = Array("11111000", "11110100", "11110010", "11110001")
  6.     MSComm1.Output = BinToByte(sdata)
  7. End Sub
  8.  
  9. Private Function BinToByte(ByVal Bin As Variant) As Variant
  10.     Dim B As Byte, K As Long, j As Long
  11.     Dim s As String
  12.     s = ""
  13.     For j = LBound(Bin) To UBound(Bin)
  14.         B = 0
  15.         For K = 1 To 8
  16.         If Mid$(Bin(j), K, 1) = "1" Then
  17.             B = B Or 2 ^ (8 - K)
  18.         End If
  19.         Next K
  20.         s = s & Chr(B)
  21.     Next j
  22.     BinToByte = s
  23. End Function
msdn says that the output should be a variant.