Const DEVICE_NAME = "Brother RL-700S"
Const ANTENNA_READER_WRITER = "Reader/Writer side"
Const ANTENNA_PRINTER = "Printer side"
'***********************************************
' RFIDタグ印刷処理
'***********************************************
Private Sub cmdPrint_Click()
Dim objDoc As bpac.Document
Dim objRfid As bpac.Rfid
Set objRfid = CreateObject("bpac.Rfid")
Set objDoc = CreateObject("bpac.Document")
If objRfid.Open(DEVICE_NAME) = False Then
MsgBox "デバイスオープン失敗"
GoTo CleanUp
End If
If objRfid.SetActiveAntenna(ANTENNA_PRINTER) = False Then
MsgBox "アンテナ設定失敗"
GoTo CleanUp
End If
If objDoc.Open(ActiveWorkbook.Path & "\Name_Plate.lbl") = False Then
MsgBox "ファイルオープン失敗"
GoTo CleanUp
End If
'「Company」のテキストオブジェクトにデータを設定
objDoc.GetObject("company").Text = Cells(Selection.Row, 1).Text
'「Name」のテキストオブジェクトにデータを設定
objDoc.GetObject("name").Text = Cells(Selection.Row, 2).Text
If objRfid.WriteTagData("", bmbUser, 0, Cells(Selection.Row, 2).Text) = False Then
MsgBox "書き込み失敗"
GoTo CleanUp
End If
'印刷を実行
Dim printOption As Long
printOption = (bpoRfid Or bpoAutoCut)
objDoc.StartPrint "DocumentName", printOption
objDoc.PrintOut 1, printOption
objDoc.EndPrint
CleanUp:
objDoc.Close
objRfid.Close
Set objDoc = Nothing
Set objRfid = Nothing
End Sub
'***********************************************
' RFIDタグ書き込み処理
'***********************************************
Private Sub cmdWrite_Click()
Dim objRfid As bpac.Rfid
Set objRfid = CreateObject("bpac.Rfid")
If objRfid.Open(DEVICE_NAME) = False Then
MsgBox "デバイスオープン失敗"
GoTo CleanUp
End If
If objRfid.SetActiveAntenna(ANTENNA_READER_WRITER) = False Then
MsgBox "アンテナ設定失敗"
GoTo CleanUp
End If
'選択した行の「氏名」をセット
Dim strCell As String
strCell = Cells(Selection.Row, 2).Text
'UIDの読み取り
Dim arrTagId
arrTagId = objRfid.ReadTagId()
If objRfid.ErrorCode = 0 Then
'データの書き込み
If objRfid.WriteTagData(arrTagId(0), bmbUser, 0, strCell) <> False Then
MsgBox ("書き込み終了" & Chr(13) & strCell)
Else
MsgBox "書き込み失敗"
GoTo CleanUp
End If
Else
MsgBox "タグ読み取り失敗"
End If
CleanUp:
objRfid.Close
Set objRfid = Nothing 'b-PACオブジェクトを解放
End Sub
'***********************************************
' RFIDタグ読み取り処理
'***********************************************
Private Sub cmdRead_Click()
Dim objRfid As bpac.Rfid
Set objRfid = CreateObject("bpac.Rfid")
If objRfid.Open(DEVICE_NAME) = False Then
MsgBox "デバイスオープン失敗"
GoTo CleanUp
End If
If objRfid.SetActiveAntenna(ANTENNA_READER_WRITER) = False Then
MsgBox "アンテナ設定失敗"
GoTo CleanUp
End If
'UIDの読み取り
Dim arrTagId
arrTagId = objRfid.ReadTagId()
If objRfid.ErrorCode = 0 Then
'データの書き込み
Dim dataSize As Integer
dataSize = objRfid.GetBlockSize(arrTagId(0), bmbUser) * objRfid.GetNumberOfBlocks(arrTagId(0), bmbUser)
Dim strUserdata
strUserdata = objRfid.ReadTagData(arrTagId(0), bmbUser, 0, dataSize)
If objRfid.ErrorCode = 0 Then
MsgBox ("読み取り終了" & Chr(13) & strUserdata)
Else
MsgBox "読み取り失敗"
GoTo CleanUp
End If
Else
MsgBox "タグ読み取り失敗"
End If
CleanUp:
objRfid.Close
Set objRfid = Nothing 'b-PACオブジェクトを解放
End Sub