私はGUIDを生成するためにExcelで使用する以下のVB Scrtipを持っています。理想的には、ランダムに作成されるのではなく、作成された日付時刻に基づくGUIDが必要です。とにかくこのスクリプトを修正して、日付と時刻に基づいてGUIDを作成しますか?VBスクリプトは、日付の時刻に基づいてguidを作成する
Private Type GUID
Data1 As Long
Data2 As Long
Data3 As Long
Data4(8) As Byte
Private Declare Function CoCreateGuid _
Lib "ole32.dll" _
(ByRef pGUID As GUID) As Long
Private Declare Function StringFromGUID2 _
Lib "ole32.dll" _
(ByRef rGUID As Any, _
ByVal lpstrCLSID As Long, _
ByVal cbMax As Long) As Long
Function CreateGUID() As String
Dim b() As Byte
Dim BuffSize As Long
Dim RetVal As Long
Dim MyGUID As GUID
BuffSize = 40
ReDim b(BuffSize * 2) As Byte
RetVal = CoCreateGuid(MyGUID)
RetVal = StringFromGUID2(MyGUID, VarPtr(b(0)), BuffSize)
CreateGUID = Left$(b, RetVal - 1)
End Function
感謝
あなたは正確に何ですか? data4の最後の部分をタイムスタンプでスワップするGUID実装があり、シーケンシャルGUIDがあります。なぜそれらが自然なランダム性の状態にならないようにする必要がありますか? –
私はそれがCombGuidでできることを知っています。しかし、VBSを使って方法を理解することはできません。インデックスの断片化を避けるために、このCombGuid形式を使用することをお勧めします。再度、感謝します。 – Ross
これをvbs/vbaまたはvb6(例として)に入れたいのですが、インデックス作成ではSQL Serverを使用していますか? –