ExcelVBA Environで誰がログインして操作したかユーザーを取得する方法

 

ExcelVBA  Environで現在 Windows にログインしているユーザー名を取得して、使用する方法を解説します。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA Environでログインユーザーを取得するシーン

以下のシーンで利用します。

1.ユーザーごとに設定を変更する(例:担当者ごとの入力制限)

2.操作履歴を記録する(ログインユーザー名と日時を記録)

3.セキュリティ対策(特定のユーザーのみ処理を実行可能にする)

 

Excel VBAEnvironでログインユーザーを取得する使い方

Environ("USERNAME") を使うことで、簡単に Windows のログインユーザー名を取得できます。

Excel VBA Environでログインユーザーを取得する注意点

・Environ("USERNAME") は環境変数から取得するため、正確なユーザー名を取得できるが、システムの設定によって影響を受ける可能性がある。

・Environ は OS の環境変数を参照するため、他の環境変数も取得可能(例: Environ("USERDOMAIN") でドメイン名取得)

 

Excel VBA Environでログインユーザーを取得するサンプルコード

標準モジュール(ログインユーザー名を表示)
Option Explicit

Sub GetLoginUserName()
    Dim userName As String
    userName = Environ("USERNAME")
    
    ' ユーザー名をメッセージボックスで表示
    MsgBox "ログインユーザー名: " & userName, vbInformation, "ユーザー情報"
End Sub

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

フォームモジュール(UserForm のラベルに表示)

Option Explicit

Private Sub UserForm_Initialize()
    Me.Label1.Caption = "ログインユーザー名: " & Environ("USERNAME")
End Sub

UserForm を開いたときにラベル ( Label1 ) にログインユーザー名が表示されます。

 

ThisWorkbook (ブックを開いた時にシートに表示)

Option Explicit

Private Sub Workbook_Open()
    Sheets("Sheet1").Range("A1").Value = "ログインユーザー: " & Environ("USERNAME")
End Sub

Excel ファイルを開いたときに Sheet1 の A1 セルにログインユーザー名が表示されます。

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

Excel VBA Environでログインユーザーを取得するサンプルコード|応用

標準モジュール(特定のユーザー以外は実行不可にする)

Option Explicit

Sub CheckUser()
    Dim userName As String
    userName = Environ("USERNAME")

    ' 許可するユーザー名を指定
    If userName <> "YourUserName" Then
        MsgBox "このマクロを実行できません。", vbCritical, "アクセス制限"
        Exit Sub
    End If

    ' 許可ユーザーのみ実行可能
    MsgBox "ようこそ!" & userName, vbInformation, "認証成功"
End Sub

特定のユーザーだけがマクロを実行できるように制御できます。

「どのユーザーが操作したか?」を記録することで、ログ管理や権限管理が可能になります。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問