教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでWindowsAPIを使い画面の幅と高さを取得する方法

API宣言

WindowsAPI(関数)を使うためには、事前に宣言が必要となります。

Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

解説

この宣言では、GetSystemMetrics関数(画面の幅と高さを取得)が使用できる様になります。

プログラミング例

具体的なプログラミング例を紹介します。

Sub 画面のサイズを表示()
    Dim 幅 As Long
    Dim 高さ As Long
    幅 = GetSystemMetrics(0) ' 画面の幅を取得
    高さ = GetSystemMetrics(1) ' 画面の高さを取得
    MsgBox "画面の幅は " & 幅 & " ピクセルです。" & vbCrLf & "画面の高さは " & 高さ & " ピクセルです。"
End Sub

上記のプログラムは、画面の幅と高さを取得して表示します。GetSystemMetrics(0)と指定すると画面の幅(ピクセル単位)が戻り値として返され、GetSystemMetrics(1)と指定すると画面の高さ(ピクセル単位)が戻り値として返されます。

まとめ

WindowsAPI関数:GetSystemMetricsを使用し、画面のサイズを取得する方法について紹介しました。