Sending messages consists of opening a queue with send access, creating the message, calling the Send method, and then closing the queue. The following procedure and example code show how this is done when sending a message whose body contains a Currency type.
    To send a Currency in a messageDim qinfo As New MSMQQueueInfo
Dim qSend As MSMQQueue
Dim qReceive As MSMQQueue
Dim mSend As New MSMQMessage
Dim mReceive As MSMQMessage
 
qinfo.PathName = ".\SendTest"
qinfo.Label = "Send Message Test"
On Error Resume Next          'Ignore if queue already exists.
qinfo.Create
On Error GoTo 0
Set qSend = qinfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE)
 
mSend.Label = "Currency Message"
mSend.Body =  CCur(100)
mSend.Send qSend
qSend.Close
 
Set qReceive = qinfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)
Set mReceive = qReceive.Receive
qReceive.Close
 
If TypeName(mReceive.Body) = "Currency" Then
   MsgBox "The retrieved message body is a Currency type."
   Else
   MsgBox "The retrieved message body is not a Currency type."
End If
 
The following example creates a destination queue, sends a message whose body contains a Currency type, retrieves the message, and tests the retrieved message body to see if it is a Currency type.
Option Explicit
Dim qinfo As New MSMQQueueInfo
Dim qSend As MSMQQueue
Dim qReceive As MSMQQueue
Dim mSend As New MSMQMessage
Dim mReceive As MSMQMessage
Private Sub Form_Click()
  
  '*************************************************************
  ' Create a destination queue and open it with SEND access.
  '*************************************************************
  qinfo.PathName = ".\SendTest"
  qinfo.Label = "Send Message Test"
  On Error Resume Next          'Ignore if queue already exists.
  qinfo.Create
  On Error GoTo 0
  Set qSend = qinfo.Open(MQ_SEND_ACCESS, MQ_DENY_NONE)
  
  '*************************************************************
  ' Send message with Currency body type.
  '*************************************************************
  mSend.Label = "Currency Message"
  mSend.Body = CCur(100)
  mSend.Send qSend
  qSend.Close
    
  '*************************************************************
  ' Open the destination queue with RECEIVE access, and
  ' retrieve the message. The retrieved message body is tested
  ' to verify it is a Currency type.
  '*************************************************************
  Set qReceive = qinfo.Open(MQ_RECEIVE_ACCESS, MQ_DENY_NONE)
  Set mReceive = qReceive.Receive
  qReceive.Close
  
  If TypeName(mReceive.Body) = "Currency" Then
     MsgBox "The retrieved message body is a Currency type."
     Else
     MsgBox "The retrieved message body is not a Currency type."
  End If
  
End Sub