NotesAgent の UNID が必要になるケースはまぁそうそうないと思いますが、諸事情により LotusScript 内で取得する必要がありました。NotesAgent クラスには UNID を表示するプロパティがありません。よって、別の方法で取得しないといけません。
そこで目をつけたのは NotesURL プロパティです。NotesURL は notes:// ではじまる URL 形式で NotesAgent の UNID をその戻り値に含んでいます。そこを加工して取得することにしました。先に書いた IsValidUNID を使っているので、忘れずに同じオブジェクト内に Function を入れておいてください。
引数は NotesAgent オブジェクトで、戻り値は String 型の UNID です。何らかの理由で正しい UNID が取得できない場合は空白文字を返すようにしています。
そこで目をつけたのは NotesURL プロパティです。NotesURL は notes:// ではじまる URL 形式で NotesAgent の UNID をその戻り値に含んでいます。そこを加工して取得することにしました。先に書いた IsValidUNID を使っているので、忘れずに同じオブジェクト内に Function を入れておいてください。
引数は NotesAgent オブジェクトで、戻り値は String 型の UNID です。何らかの理由で正しい UNID が取得できない場合は空白文字を返すようにしています。
Function GetAgentUNID(agent As NotesAgent) As String
Dim splitURL As Variant
splitURL = Split(agent.NotesURL, "/")
GetAgentUNID = splitURL(Ubound(splitURL))
If Instr(GetAgentUNID, "?OpenAgent") Then
GetAgentUNID = Strleft(GetAgentUNID, "?OpenAgent")
End If
If Not IsValidUNID(GetAgentUNID) Then
GetAgentUNID = ""
End If
End Function