コンピュータ名を取得するWindowsAPI関数(GetComputerName)について説明します。
【目次】
構文
記述方法は以下の通りとなります。
=======================================================
(API定義)
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
(VBA記述)
GetComputerName (lpBuffer,nSize)
=======================================================
[説明]:
コンピュータ名を取得するWindowsAPI関数はGetComputerName関数となります。VBAから呼び出して使用する場合には、Declareステートメントによる「Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long」をプロシージャの外で宣言します。引数であるlpBufferは取得したコンピュータ名を格納するエリアとなります。また、もう一つの引数であるnSizeにはコンピュータ名の文字数を指定します。実行による戻り値には「0」と「0以外」があり、「0以外」の場合は正常終了、「0」の場合はエラーとなります。
使い方
[プログラミング例]:
-------------------------------------------------
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Sub サンプル()
'↓処理①
Dim コンピュータ名 As String * 255
'↓処理②
If GetComputerName(コンピュータ名, 255) <> 0 Then
MsgBox コンピュータ名
Else
MsgBox "コンピュータ名がありません。"
End If
End Sub
-------------------------------------------------
処理の流れは以下の通りとなります。
[処理①]:変数定義
Dimによるコンピュータ名を格納する変数の定義となります。予め格納する変数のサイズを指定する必要があるため、サイズを255にしてあります。
[処理②]:GetComputerNam(WindowsAPI関数)によるコンピュータ名取得
WindowsAPI関数であるGetComputerNamを使用したコンピュータ名の取得になります。取得処理が正常に終了すると「0以外」の値が返され、正常でない場合には「0」の値が返されます。よって、戻り値が0以外の場合はコンピュータ名がMsgBoxで表示され、0の場合は”コンピュータ名がありません。”が表示されます。
※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。
[実行例]:
現在使用しているコンピュータ名「PC-00001」が表示されます。
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
WindowsAPIを使用したコンピュータ名を取得する方法についての説明は以上です。
おわりに
今回はWindowsAPI関数によるコンピュータ名の取得方法について説明しました。是非参考にして下さい。