Excel VBA:コンピュータ名を取得する|GetComputerNameA
Windows APIのGetComputerNameAを使用し、コンピュータ名を取得するExcel VBAです。
Homeに戻る >
Excel プログラムのTipsへ
特定のコンピュータのみ動作させるようなアプリを作成する場合、掲載しているようなVBAを使用します。
またデータに登録したコンピュータ名を含める場合などにも使用します。
コンピュータ名を取得するには、Windows APIのGetComputerNameAを使用します。
GetComputerNameAの構文
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
戻り値:関数が成功すると0以外の値が返り、関数が失敗すると0が返ります。
- lpBuffer:コンピュータ名が格納されます。
- nSize:lpBufferのサイズを指定します。
関連する「Excelのバージョンを調べる」を掲載していますので参照してください。
コンピュータ名を取得するVBAコード
ExcelシートとVBA入力画面
シートにコマンドボタンを配置します。
GetComputerNameAの宣言文、ExGetComputerNameプロシージャ、CommandButton1のクリックイベントを入力します。
VBAコードの解説
- Windows APIのGetComputerNameAを宣言します。
ExGetComputerNameプロシージャ
- コンピュータ名が格納されるバッファ変数を宣言します。
- GetComputerNameAを実行します。
- バッファの終端のNull位置を取得します。
- バッファからコンピュータ名を取り出します。
CommandButton1のクリックイベント
- ExGetComputerNameプロシージャを呼び出します。
ExcelシートのVBAコード
Option Explicit
'コンピュータ名を取得する
Private Declare Function GetComputerName Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'コンピュータ名を取得する
Function ExGetComputerName() As String
Dim Buf As String
Dim lRet As Long
Dim ln As Long
'空文字列の作成
Buf = Space$(255)
lRet = GetComputerName(Buf, 255)
'Null位置を調べる
ln = InStr(1, Buf, vbNullChar)
If ln <> 0 Then
'NULLからの取り出し
ExGetComputerName = Left(Buf, ln - 1)
Else
ExGetComputerName = Buf
End If
End Function
Private Sub CommandButton1_Click()
CommandButton1.Caption = ExGetComputerName
End Sub
実行したExcelシート
コマンドボタンにVBAを実行したコンピュータ名が表示されました。
Excel Tipsメニューへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved