Получение имени компьютера с использованием VBA - PullRequest
35 голосов
/ 23 августа 2010

Есть ли способ узнать имя компьютера в VBA?

Ответы [ 3 ]

57 голосов
/ 23 августа 2010
Dim sHostName As String

' Get Host Name / Get Computer Name

sHostName = Environ$("computername")
17 голосов
/ 23 августа 2010

Вы можете сделать так:

Sub Get_Environmental_Variable()

Dim sHostName As String
Dim sUserName As String

' Get Host Name / Get Computer Name    
sHostName = Environ$("computername")

' Get Current User Name    
sUserName = Environ$("username")

End Sub
8 голосов
/ 11 апреля 2012

Похоже, я опоздал на игру, но это общий вопрос ...

Это, вероятно, код, который вы хотите.

Обратите внимание, что этот код находится в свободном доступе от Usenet, MSDN и блога Excellerando .


Public Function ComputerName() As String
' Returns the host name

' Uses late-binding: bad for performance and stability, useful for 
' code portability. The correct declaration is:

'   Dim objNetwork  As IWshRuntimeLibrary.WshNetwork
'   Set objNetwork = New IWshRuntimeLibrary.WshNetwork

Dim objNetwork As Object
Set objNetwork = CreateObject("WScript.Network")

ComputerName = objNetwork.ComputerName

Set objNetwork = Nothing

Функция завершения

Возможно, вам это тоже понадобится:


Public Function UserName(Optional WithDomain As Boolean = False) As String
' Returns the user's network name

' Uses late-binding: bad for performance and stability, useful for
' code portability. The correct declaration is:

'   Dim objNetwork  As IWshRuntimeLibrary.WshNetwork
'   Set objNetwork = New IWshRuntimeLibrary.WshNetwork

Dim objNetwork As Object
Set objNetwork = CreateObject("WScript.Network")

If WithDomain Then
    UserName = objNetwork.UserDomain & "\" & objNetwork.UserName
Else
    UserName = objNetwork.UserName
End If

Set objNetwork = Nothing

Функция завершения

...