エクセルVBAでよく使うコードの備忘録。VBAでコンピュータ名やユーザー名を取得するコード。WshNetworkオブジェクトを使用します。
事前準備
VBAでPC名やユーザー名を取得するには、参照設定が必要です。VBAのコードエディタから「ツール > 参照設定」と進み、「Windows Script Host Object Model」にチェックを入れておきます。(参照設定をしない場合は、後述のサンプルコードをご参照ください。)
WshNetworkObject
コンピュータ名やユーザー名を取得するには、WshNetworkObjectを使用します。オブジェクトを生成し、「ComputerName」プロパティ・「UserName」プロパティにアクセスしてやれば、コンピュータ名とユーザー名が取得できます。
サンプルコード(参照設定あり)
Public Sub GetUserPcName()
'--- WshNetworkオブジェクトを生成 ---'
Dim WshNetworkObj As IWshRuntimeLibrary.WshNetwork
Set WshNetworkObj = New IWshRuntimeLibrary.WshNetwork
'--- コンピュータ名を取得 ---'
Dim pc_name As String
pc_name = WshNetworkObj.ComputerName
'--- ユーザー名を取得 ---'
Dim user_name As String
user_name = WshNetworkObj.UserName
End Sub
ちなみに、参照設定を行わない場合は以下のようになります。「WshNetwork」オブジェクトを生成する部分の2行が異なっています。
サンプルコード(参照設定なし)
Public Sub GetUserPcName()
'--- WshNetworkオブジェクトを生成 ---'
Dim WshNetworkObj As Object
Set WshNetworkObj = CreateObject("WScript.Network")
'--- コンピュータ名を取得 ---'
Dim pc_name As String
pc_name = WshNetworkObj.ComputerName
'--- ユーザー名を取得 ---'
Dim user_name As String
user_name = WshNetworkObj.UserName
End Sub