ActiveDirectoryからログインしている自分自身の情報を取得
ユーザー名じゃなくて,表示名,フルネームがほしい場合について調べていたメモがノートにあったので,自分用にまとめます。
ユーザーネームを取得してみて,知りたいのはこれじゃあないんだ!
となったときに必死に調べて,自分に関係ある部分だけ抜き取ったのが下記のものです。
全く理解できてませんが,職場で試してみてうまくいったことは覚えてます。
ただ,ネットワークに不参加の場合本題のコードはだめでしたので,保険をかける必要がありました。
Sub test() 'ネットワーク不参加時はエラーが出るので保険 Debug.Print VBA.Interaction.Environ$("UserName") 'ExcelやWordを利用 Dim XLApp As Object Set XLApp = CreateObject("Excel.Application") Debug.Print XLApp.username '本題 Dim objADSystemInfo As Variant: Set objADSystemInfo = CreateObject("ADSystemInfo") Dim objUser As Variant: Set objUser = GetObject("LDAP://" & objADSystemInfo.username) Debug.Print objUser.DisplayName '表示名 Debug.Print objUser.userPrincipalName 'ユーザーログオン名 End Sub
職場でしか試せないので,チェックできておりません。
情報元はこちらのページです。
pnpk.net