GetSystemMetrics関数は、WindowsのAPIの一つで、システムのメトリックを取得するために使用されます。メトリックとは、Windowsのシステムパラメーターの値を取得するための定数のことです。たとえば、画面の幅や高さ、スクロールバーの幅、アイコンのサイズなどが該当します。この関数を使用することで、取得したメトリックの値に応じて、VBAのコードを実行することができます。
API宣言
GetSystemMetrics関数を使用するためには、まずAPI宣言を行う必要があります。API宣言とは、WindowsのAPIをVBAから呼び出すために必要な処理で、以下のように記述します。
この宣言により、GetSystemMetrics関数を使用するための準備が整います。
使い方
GetSystemMetrics関数は、以下のように使用します。
この式では、変数にメトリックの値が代入されます。定数には、取得したいメトリックの種類に応じて、以下のように定義された定数を使用します。
・SM_CYSCREEN:画面の高さをピクセル単位で取得する
・SM_CXVSCROLL:垂直スクロールバーの幅をピクセル単位で取得する
・SM_CYHSCROLL:水平スクロールバーの高さをピクセル単位で取得する
・SM_CXICON:アイコンの幅をピクセル単位で取得する
・SM_CYICON:アイコンの高さをピクセル単位で取得する
・SM_CXMIN:ウィンドウの最小幅をピクセル単位で取得する
・SM_CYMIN:ウィンドウの最小高さをピクセル単位で取得する
このように、定数を変更することで、取得したいメトリックに応じてGetSystemMetrics関数を使用することができます。
プログラミング例
以下は、画面の幅と高さを取得するプログラム例です。
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Sub GetScreenSize()
Dim screen_width As Long
Dim screen_height As Long
screen_width = GetSystemMetrics(SM_CXSCREEN)
screen_height = GetSystemMetrics(SM_CYSCREEN)
MsgBox "画面の幅:" & screen_width & vbCrLf & "画面の高さ:" & screen_height
End Sub
このプログラムでは、GetSystemMetrics関数を使用して、画面の幅と高さを取得しています。そして、取得した値をMsgBoxで表示しています。
まとめ
GetSystemMetrics関数は、WindowsのAPIの一つで、システムのメトリックを取得するために使用されます。変数にGetSystemMetrics関数を代入することで、メトリックの値を取得することができます。