VBA 在 OSX 上获取用户名(或 Mac 替代环境(“用户名”))

ARi*_*ich 6 macos excel vba excel-2010

我的任务是创建一个安全的(Windows 版本)Excel 工作簿,该工作簿使用宏来验证用户是否有权查看内容。在 Excel 2010 for Windows 中,我使用该Environ("username")函数来完成此操作。

我遇到的问题是组织中的一些用户使用 Mac 来完成日常工作,而Environ不能使用 OSX。

有谁知道找到 Mac 用户名的另一种方法?我在网上查过,但我能找到的只是如何找到计算机的唯一标识符,而不是用户名。

我试图用 Mac 做的事情甚至可能吗?

任何信息表示赞赏!

Cub*_*ase 6

您可以使用 AppleScript 返回用户名并从 VBA 运行它。

以下函数应该可以解决问题。

Function GetUserNameMac() As String
    Dim sMyScript As String

    sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"

    GetUserNameMac = MacScript(sMyScript)
End Function
Run Code Online (Sandbox Code Playgroud)


Jon*_*ier 5

Environ("USER")Environ("LOGNAME")在 Mac 上返回与 MacScript 答案相同的内容。