VBA中创建全局惟一序号GUID
VBA中创建全局惟一序号:
Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Public Function CreateGUID() As String Dim G As GUID With G If (CoCreateGuid(G) = 0) Then CreateGUID = _ String$(8 - Len(Hex$(.Data1)), "0") & Hex$(.Data1) & _ String$(4 - Len(Hex$(.Data2)), "0") & Hex$(.Data2) & _ String$(4 - Len(Hex$(.Data3)), "0") & Hex$(.Data3) & _ IIf((.Data4(0) < &H10), "0", "") & Hex$(.Data4(0)) & _ IIf((.Data4(1) < &H10), "0", "") & Hex$(.Data4(1)) & _ IIf((.Data4(2) < &H10), "0", "") & Hex$(.Data4(2)) & _ IIf((.Data4(3) < &H10), "0", "") & Hex$(.Data4(3)) & _ IIf((.Data4(4) < &H10), "0", "") & Hex$(.Data4(4)) & _ IIf((.Data4(5) < &H10), "0", "") & Hex$(.Data4(5)) & _ IIf((.Data4(6) < &H10), "0", "") & Hex$(.Data4(6)) & _ IIf((.Data4(7) < &H10), "0", "") & Hex$(.Data4(7)) End If End With End Function
使用时调用:
Dim UniqueID As String UniqueID = CreateGUID()