Accessでフォームをデザインする際、気を付けなければならないひとつがディスプレイの解像度です。低い解像度を前提にデザインした場合はまだよいですが、高い解像度を前提にした場合、その実行環境の解像度が低いとすべてが表示されず、スクロールしなければならないといったことにもなりかねません。
そのような場合に備えて、事前にユーザーのディスプレイの解像度を取得し、もし前提条件よりも低ければ警告を表示するといった対応も一つの手段としてあると思います。そのようなときに使える、ディスプレイの解像度を取得するプログラムサンプルです。
まず下記のAPIの宣言をDeclarationsセクションに記述します。
'デスクトップサイズ取得関係のAPIの宣言
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindowRect Lib "user32" _
(ByVal hWnd As Long, lpRect As RECT) As Long
Private Type RECT
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type
そして、然るべきところで下記のようなプログラムを実行します。
Dim r As RECT
Dim hWnd As Long
Dim lngWidth As Long
Dim lngHeight As Long
hWnd = GetDesktopWindow()
GetWindowRect hWnd, r
lngWidth = r.x2 - r.x1
lngHeight = r.y2 - r.y1
MsgBox "ディスプレイの解像度は " & lngWidth & "×" & lngHeight
If lngWidth < 1024 Or lngHeight < 768 Then
MsgBox "この解像度ではフォーム全体が表示されません!" & _
vbCrLf & _
"1024×768以上でお使いください。", _
vbOKOnly + vbInformation
End If
|