GetSystemMetrics関数は、WindowsAPIの一つで、システムのメトリックを取得するために使用されます。メトリックとは、Windowsのシステムパラメーターの値を取得するための定数のことです。たとえば、画面の幅や高さ、スクロールバーの幅、アイコンのサイズなどが該当します。この関数を使用することで、取得したメトリックの値に応じて、VBAのコードを実行することができます。
API宣言
ExcelVBAでは、GetSystemMetrics関数を使用する前にAPI宣言を行う必要があります。API宣言を行うことで、ExcelVBAがWindowsAPI関数を認識することができるようになります。API宣言は次のように行います。
解説
パラメータ | 内容 |
Lib | 使用する動的リンクライブラリ(DLL)の名前を指定します。ここでは "user32.dll"となります。 |
引数については以下の通りです。
引数 | 内容 |
nIndex | この引数には、システムメトリックの定義された定数または数値が渡されます。システムメトリックは、システムのさまざまな属性や設定に関する情報を提供します。システムメトリックの種類を以下で紹介します。 |
システムメトリックには以下の設定値が指定できます。
定数 | 内容 |
SM_CXSCREEN | 画面の幅をピクセル単位で取得する |
SM_CYSCREEN | 画面の高さをピクセル単位で取得する |
SM_CXVSCROLL | 垂直スクロールバーの幅をピクセル単位で取得する |
SM_CYHSCROLL | 水平スクロールバーの高さをピクセル単位で取得する |
SM_CXICON | アイコンの幅をピクセル単位で取得する |
SM_CYICON | アイコンの高さをピクセル単位で取得する |
SM_CXMIN | ウィンドウの最小幅をピクセル単位で取得する |
SM_CYMIN | ウィンドウの最小高さをピクセル単位で取得する |
使い方
GetSystemMetrics関数は、以下のように使用します。
この式では、変数にメトリックの値が代入されます。定数には上記で紹介した定数を指定します。定数を変更することで、取得したいメトリックに応じてGetSystemMetrics関数を使用することができます。
プログラミング例
以下は、画面の幅と高さを取得するプログラム例です。
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関数は、システムのメトリックを取得するために使用されます。変数にGetSystemMetrics関数を代入することで、メトリックの値を取得することができます。