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

 

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

 

2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

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

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

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

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

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

 

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

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

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

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

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

 

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

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

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

Option Explicit

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

 

フォームモジュール(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 セルにログインユーザー名が表示されます。

 

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で自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。