【VBA】ログインユーザー名を取得する【シンプル】

VBAで
 ・Windowsのログインユーザー名を取得
できます!

取得方法は複数ありますが、ここでは私が
 ・1番シンプルと考える方法
を記載します!

Environ(“USERNAME”)」により、
ログインユーザー名を取得できます!

なおほぼ同様の方法で
 ・コンピューター名を取得
することもできます!
詳細は以下の記事をご確認ください!



PR

VBAコード

「Environ関数」を使用して取得します。

Sub sample()
    'ログインユーザー名を取得
    MsgBox Environ("USERNAME")
End Sub

Environ関数」の引数に「USERNAME」を指定することで、「ログインユーザー名」を取得できます。

PR

実行結果

ログインユーザー名を取得できました。
※以下はユーザー「user」でWindowsにログインしている状態で実行した結果です。

ログインユーザー名
ログインユーザー名
PR

参考①

「ログインユーザー名」以外にも、「Environ関数」は「コンピューター名」や「CPUの名称」を取得できます。

詳細は以下の記事をご確認ください。


PR

参考②

WScript.Shell」の「SpecialFolders」により、デスクトップのパスを取得できます。

詳細は以下の記事をご確認ください。

PR

参考③

Environ関数」は、Windowsの環境変数に設定された値を取得する関数です。
上記以外も取得します。

詳細は公式サイトをご確認ください。

PR

参考④

ログインユーザー名は
 ・「WshNetworkオブジェクト」の「UserName」プロパティ
でも取得できます。

ただEnviron関数を使用した方法のほうがシンプルのため、こちらの使用はオススメしません。
知識として知っておくだけでよいです。

'変数の宣言を必須
Option Explicit

Sub sample()

    Dim wnet As Object
    
    Set wnet = CreateObject("WScript.Network")
    
    'ログインユーザー名を取得
    MsgBox (wnet.UserName)
    
    '後片付け
    Set wnet = Nothing
    
End Sub

「WshNetworkオブジェクト」の「UserName」プロパティにより、ログインユーザー名を取得します(11行目)。


「WshNetworkオブジェクト」の「UserName」プロパティの詳細は、公式サイトをご確認ください。

PR

参考⑤

ログインユーザー名は
 ・Windows APIの1つである「GetUserName関数」
でも取得できます。

ただやはりEnviron関数を使用した方法のほうがシンプルのため、こちらの使用もオススメしません。
知識として知っておくだけでよいです。

Option Explicit

'Windows API「GetUserName」
Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Sub sample()
    
    Dim userName As String * 255
    
    'ログインユーザー名を取得
    If GetUserName(userName, 255) <> 0 Then
        MsgBox userName
    Else
        MsgBox "ログインユーザー名の取得に失敗しました。"
    End If

End Sub
PR

参考⑥

ユーザー名は
 ・「Applicationオブジェクト」の「UserName」プロパティ
でも取得できます。

ただ、この方法で取得できるのは
 ・Excelをインストール/ライセンス認証する際に入力したユーザー名
です。
※Windowsのログインユーザー名ではありません。

Sub sample()
    'ユーザー名を取得
    MsgBox Application.UserName
End Sub


「Applicationオブジェクト」の「UserName」プロパティの詳細は、公式サイトをご確認ください。

タイトルとURLをコピーしました