【VBA】簡易アクセスログの元情報取得ロジック

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

AccessなどのデータベースやVBAアプリケーションにおいて、誰が・どの端末からアクセスしたかを記録するための簡易的なアクセスログの元情報を取得するVBAコードです。

この記事でできること

  • VBAを使用して、アクセス元のWindowsコンピュータ名を取得する
  • アクセス元のWindowsログインユーザー名を取得する
  • WMI(Windows Management Instrumentation)を利用して、端末のIPアドレスを取得する

想定環境・前提条件

  • 動作確認環境:Microsoft Access / Excel (VBA) が動作する Windows 環境
  • 権限:WMIクエリを実行可能な権限(通常のエンドユーザー権限で動作します)

完全なコード

Private Sub コマンド0_Click()
    ' コンピュータ名とユーザー名の出力
    Debug.Print "コンピュータ名: " & Environ("COMPUTERNAME")
    Debug.Print "ユーザー名: " & Environ("USERNAME")
    
    ' IPアドレスの出力
    Debug.Print "IPアドレス: " & GetIPAddress
End Sub

Function GetIPAddress() As String
    Dim NetAdapters, objNic, strIPAddress
    
    ' WMIを通じて有効なIP設定を持つネットワークアダプター情報を取得
    Set NetAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2"). _
        ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where (IPEnabled = TRUE)")
    
    For Each objNic In NetAdapters ' ネットワークアダプターは複数存在する場合があります
        For Each strIPAddress In objNic.IPAddress ' IPアドレスは複数割り当てられている場合があります
            GetIPAddress = strIPAddress
            Exit For ' 最初の1件を取得して抜ける
        Next
        Exit For
    Next
End Function

コードの要点

  • Environ関数: "COMPUTERNAME" や "USERNAME" を指定することで、OSの環境変数から手軽に端末名やユーザー名を取得できます。
  • WMI (Win32_NetworkAdapterConfiguration): ローカルPCのネットワーク構成情報を照会し、有効なIPアドレスを持つアダプターからIPを取得します。複数のアダプターやIPが存在する場合を考慮し、最初の有効なアドレスを採用しています。

セキュリティ・制約

  • WMIを使用したネットワーク情報の取得は、セキュリティソフトやポリシーによって制限される環境では動作しない場合があります。
  • Wi-Fiや有線LANなど複数のネットワーク接続がある環境では、想定とは異なるアダプターのIPアドレスが取得される可能性があります。必要に応じて接続名などで絞り込んでください。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月27日

  • 変更HTMLタグやblockquoteによる古い本文の体裁を見直し、コードブロックを使用した可読性の高い構成に変更しました。
  • 追加コンピュータ名、Windowsユーザー名、IPアドレスを取得するためのVBA実行手順とコードの解説を追加しました。

文書情報

記事タイトル
【VBA】簡易アクセスログの元情報取得ロジック
作成日
更新日
Source URL
https://papanda925.com/?p=485

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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