ここでは、VBAを使ってPCにログインしているログインユーザー名を取得する2通りの方法を掲載しています。
スポンサーリンク
WScript.Network オブジェクトを使用する
1つ目は、WScript.Network オブジェクトを使用する方法です。スッキリした記述で分かりやすいと思います。
Dim loginUser As String ' ログインユーザー名を取得する loginUser = CreateObject("WScript.Network").UserName
WinAPI の GetUserName 関数を使用する
2つ目は、WinAPI の GetUserName 関数を使用してログインユーザー名を取得する方法です。こちらは、1つ目と比べて面倒です。
まずは、以下の WinAPI の宣言を標準モジュールに記述します。
' WinAPI の宣言:この宣言は標準モジュールに記述する Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" ( _ ByVal lpBuffer As String, nSize As Long) As Long
そして、必要な個所で GetUserName 関数を呼び出して、ログインユーザー名を取得します。
Dim loginUser As String * 255 ' ログインユーザー(文字列)が格納されるバッファ Dim ret As Long ' リターン値 ' ログインユーザー名を取得する ret = GetUserName(loginUser, 255) ' 後ろのNULL文字を除去 loginUser = Replace(loginUser, vbNullChar, "")