GetComputerName関数は、WindowsAPIの一部であり、実行中のコンピュータの名前を取得するために使用されます。この関数は、コンピュータ名を格納するバッファを指定して呼び出すことができます。
API宣言
ExcelVBAでは、GetComputerName関数を使用する前にAPI宣言を行う必要があります。API宣言を行うことで、ExcelVBAがWindowsAPI関数を認識することができるようになります。API宣言は次のように行います。
Private Declare Function GetComputerName Lib "kernel32" _
Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
解説
パラメータ | 内容 |
Lib | 使用する動的リンクライブラリ(DLL)の名前を指定します。ここでは "kernel32.dll"となります。 |
Alias | API関数名を指定します。ここでは"GetComputerNameA"という関数名が指定されています。 |
引数については以下の通りです。
引数 | 内容 |
lpBuffer | コンピュータ名が格納される文字列へのポインタです。この引数には、関数が呼び出される前に十分なメモリが確保されている必要があります。関数が成功すると、この文字列にコンピュータ名が格納されます。 |
nSize | lpBufferが指すバッファのサイズを指定します。バイト単位でのサイズを表す整数型です。関数が呼び出されると、nSizeに実際に必要なサイズが格納されます。もしlpBufferがNULLの場合、この引数は無視されます。バッファが十分なサイズでない場合、関数はERROR_INSUFFICIENT_BUFFERを返し、nSizeに必要なサイズが格納されます。 |
使い方
GetComputerName関数を使用するには、コンピュータ名を格納するバッファを指定する必要があります。以下のコードは、GetComputerName関数を使用して、コンピュータ名を取得する例です。
Dim buffer As String * 256
Dim length As Long
length = Len(buffer)
' コンピュータ名を取得する
GetComputerName buffer, length
' コンピュータ名を表示する
MsgBox "コンピュータ名は " & Left(buffer, length) & " です。"
End Sub
このコードでは、変数bufferを256バイトの文字列型で宣言しています。この変数に、コンピュータ名を格納します。length変数に、buffer変数の長さを設定します。
GetComputerName関数を呼び出すために、GetComputerName関数にbufferとlength変数を渡します。GetComputerName関数は、実行中のコンピュータの名前をbuffer変数に格納します。その後、MsgBox関数を使用して、コンピュータ名を表示します。
プログラミング例
以下のコードは、GetComputerName関数を使用してコンピュータ名を取得し、セルに表示する例です。
Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Sub GetComputerNameExample()
Dim buffer As String * 256
Dim length As Long
length = Len(buffer)
' コンピュータ名を取得する
GetComputerName buffer, length
' コンピュータ名をセルに表示する
Range("A1").Value = Left(buffer, length)
End Sub
このコードでは、GetComputerName関数を使用して、コンピュータ名をbuffer変数に格納します。その後、Rangeオブジェクトを使用して、A1セルにコンピュータ名を表示します。
まとめ
GetComputerName関数を使用することで、現在実行されているコンピュータの名前を取得することができます。WindowsAPIを使用することで、より高度な機能を実現することができますので、是非活用してみてください。