Attribute VB_Name = "xGetUserName関数" ' @(h) xGetUserName関数.bas ver 1.1 ( '98.10.08 ) ' @(s) ' ログオンユーザ名を取得する関数モジュール ' 本モジュールはテスト用コードモジュールです。 ' Option Explicit Public Const MAX_USERNAME_LENGTH = 64 Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Attribute GetUserName.VB_ProcData.VB_Invoke_Func = " \n14" Sub xGetUserNameのテスト() 'ExcelまたはVisual Basicで実行してください。 Attribute xGetUserNameのテスト.VB_ProcData.VB_Invoke_Func = " \n14" MsgBox "(" & xGetUserName & ")" End Sub ' @(f) ' ' 機能 : ログオンユーザ名を取得する関数 ' ' 返り値 : ログオンユーザ名 ' ' 引き数 : なし ' ' 機能説明 : ログオンユーザ名を取得する関数 ' ' 備考 : 特になし ' Function xGetUserName() As String Attribute xGetUserName.VB_ProcData.VB_Invoke_Func = " \n14" Dim lpBuffer$, nSize&, dl& nSize& = MAX_USERNAME_LENGTH '' サイズの設定 lpBuffer$ = String$(MAX_USERNAME_LENGTH, 0) '' バッファの確保 dl& = GetUserName(lpBuffer$, nSize) '' API関数 xGetUserName = Left(lpBuffer$, InStr(lpBuffer$, Chr$(0)) - 1) '' リターン値の設定 End Function