Attribute VB_Name = "xGetSystemMetrics関数"





' @(h) xGetSystemMetrics関数.bas                     ver 1.1 ( '98.10.08  )

' @(s)
'  システムメトリックに関する情報を取得する関数モジュール
'  本モジュールはテスト用コードモジュールです。
'
Option Explicit

' GetSystemMetrics() codes
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Public Const SM_CXVSCROLL = 2
Public Const SM_CYHSCROLL = 3
Public Const SM_CYCAPTION = 4
Public Const SM_CXBORDER = 5
Public Const SM_CYBORDER = 6
Public Const SM_CXDLGFRAME = 7
Public Const SM_CYDLGFRAME = 8
Public Const SM_CYVTHUMB = 9
Public Const SM_CXHTHUMB = 10
Public Const SM_CXICON = 11
Public Const SM_CYICON = 12
Public Const SM_CXCURSOR = 13
Public Const SM_CYCURSOR = 14
Public Const SM_CYMENU = 15
Public Const SM_CXFULLSCREEN = 16
Public Const SM_CYFULLSCREEN = 17
Public Const SM_CYKANJIWINDOW = 18
Public Const SM_MOUSEPRESENT = 19
Public Const SM_CYVSCROLL = 20
Public Const SM_CXHSCROLL = 21
Public Const SM_DEBUG = 22
Public Const SM_SWAPBUTTON = 23
Public Const SM_RESERVED1 = 24
Public Const SM_RESERVED2 = 25
Public Const SM_RESERVED3 = 26
Public Const SM_RESERVED4 = 27
Public Const SM_CXMIN = 28
Public Const SM_CYMIN = 29
Public Const SM_CXSIZE = 30
Public Const SM_CYSIZE = 31
Public Const SM_CXFRAME = 32
Public Const SM_CYFRAME = 33
Public Const SM_CXMINTRACK = 34
Public Const SM_CYMINTRACK = 35
Public Const SM_CXDOUBLECLK = 36
Public Const SM_CYDOUBLECLK = 37
Public Const SM_CXICONSPACING = 38
Public Const SM_CYICONSPACING = 39
Public Const SM_MENUDROPALIGNMENT = 40
Public Const SM_PENWINDOWS = 41
Public Const SM_DBCSENABLED = 42
Public Const SM_CMOUSEBUTTONS = 43
Public Const SM_CMETRICS = 44
Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Attribute GetSystemMetrics.VB_ProcData.VB_Invoke_Func = " \n14"

Sub xGetSystemMetricsのテスト()  'ExcelまたはVisual Basicで実行してください。
Attribute xGetSystemMetricsのテスト.VB_ProcData.VB_Invoke_Func = " \n14"
    Debug.Print "スクリーン領域の幅                                                =(" & xGetSystemMetrics(SM_CXSCREEN) & ")"
    Debug.Print "スクリーン領域の高さ                                              =(" & xGetSystemMetrics(SM_CYSCREEN) & ")"
    Debug.Print "垂直スクロールバーの矢印ビットマップの幅                          =(" & xGetSystemMetrics(SM_CXVSCROLL) & ")"
    Debug.Print "垂直スクロールバーの矢印ビットマップの高さ                        =(" & xGetSystemMetrics(SM_CYHSCROLL) & ")"
    Debug.Print "ウインドウタイトルの高さ                                          =(" & xGetSystemMetrics(SM_CYCAPTION) & ")"
    Debug.Print "サイズ変更できないウィンドウ枠の幅                                =(" & xGetSystemMetrics(SM_CXBORDER) & ")"
    Debug.Print "サイズ変更できないウィンドウ枠の高さ                              =(" & xGetSystemMetrics(SM_CYBORDER) & ")"
    Debug.Print "ダイアログウィンドウスタイルのウィンドウ枠の幅                    =(" & xGetSystemMetrics(SM_CXDLGFRAME) & ")"
    Debug.Print "ダイアログウィンドウスタイルのウィンドウ枠の高さ                  =(" & xGetSystemMetrics(SM_CYDLGFRAME) & ")"
    Debug.Print "水平スクロールバーのスクロールボックス(つまみ)の高さ              =(" & xGetSystemMetrics(SM_CYVTHUMB) & ")"
    Debug.Print "水平スクロールバーのスクロールボックス(つまみ)の幅                =(" & xGetSystemMetrics(SM_CXHTHUMB) & ")"
    Debug.Print "アイコンの幅                                                      =(" & xGetSystemMetrics(SM_CXICON) & ")"
    Debug.Print "アイコンの高さ                                                    =(" & xGetSystemMetrics(SM_CYICON) & ")"
    Debug.Print "カーソルの幅                                                      =(" & xGetSystemMetrics(SM_CXCURSOR) & ")"
    Debug.Print "カーソルの高さ                                                    =(" & xGetSystemMetrics(SM_CYCURSOR) & ")"
    Debug.Print "単一行で構成されるメニューバーの高さ                              =(" & xGetSystemMetrics(SM_CYMENU) & ")"
    Debug.Print "フルスクリーンウィンドウのクライアント領域の幅                    =(" & xGetSystemMetrics(SM_CXFULLSCREEN) & ")"
    Debug.Print "フルスクリーンウィンドウのクライアント領域の高さ                  =(" & xGetSystemMetrics(SM_CYFULLSCREEN) & ")"
    Debug.Print "漢字ウィンドウの高さ                                              =(" & xGetSystemMetrics(SM_CYKANJIWINDOW) & ")"
    Debug.Print "マウスがインストールされているかどうか                            =(" & xGetSystemMetrics(SM_MOUSEPRESENT) & ")"
    Debug.Print "水平スクロールバーの矢印ビットマップの高さ                        =(" & xGetSystemMetrics(SM_CYVSCROLL) & ")"
    Debug.Print "水平スクロールバーの矢印ビットマップの幅                          =(" & xGetSystemMetrics(SM_CXHSCROLL) & ")"
    Debug.Print "デバックバージョンかどうか                                        =(" & xGetSystemMetrics(SM_DEBUG) & ")"
    Debug.Print "マウスの左右ボタンの機能が交換されているかどうか                  =(" & xGetSystemMetrics(SM_SWAPBUTTON) & ")"
    Debug.Print "                                                                  =(" & xGetSystemMetrics(SM_RESERVED1) & ")"
    Debug.Print "                                                                  =(" & xGetSystemMetrics(SM_RESERVED2) & ")"
    Debug.Print "                                                                  =(" & xGetSystemMetrics(SM_RESERVED3) & ")"
    Debug.Print "                                                                  =(" & xGetSystemMetrics(SM_RESERVED4) & ")"
    Debug.Print "ウィンドウの幅の最小値                                            =(" & xGetSystemMetrics(SM_CXMIN) & ")"
    Debug.Print "ウィンドウの高さの最小値                                          =(" & xGetSystemMetrics(SM_CYMIN) & ")"
    Debug.Print "タイトルバーに含まれるビットマップの幅                            =(" & xGetSystemMetrics(SM_CXSIZE) & ")"
    Debug.Print "タイトルバーに含まれるビットマップの高さ                          =(" & xGetSystemMetrics(SM_CYSIZE) & ")"
    Debug.Print "サイズ変更枠を持つウィンドウ枠の幅                                =(" & xGetSystemMetrics(SM_CXFRAME) & ")"
    Debug.Print "サイズ変更枠を持つウィンドウ枠の高さ                              =(" & xGetSystemMetrics(SM_CYFRAME) & ")"
    Debug.Print "ウィンドウのトラッキングの幅の最小値                              =(" & xGetSystemMetrics(SM_CXMINTRACK) & ")"
    Debug.Print "ウィンドウのトラッキングの高さの最小値       .                    =(" & xGetSystemMetrics(SM_CYMINTRACK) & ")"
    Debug.Print "ダブルクリックで最初にクリックが実行されたときの周辺の長方形の幅  =(" & xGetSystemMetrics(SM_CXDOUBLECLK) & ")"
    Debug.Print "ダブルクリックで最初にクリックが実行されたときの周辺の長方形の高さ=(" & xGetSystemMetrics(SM_CYDOUBLECLK) & ")"
    Debug.Print "アイコンを整列させた際に利用されるアイコン周辺の長方形の幅        =(" & xGetSystemMetrics(SM_CXICONSPACING) & ")"
    Debug.Print "アイコンを整列させた際に利用されるアイコン周辺の長方形の高さ      =(" & xGetSystemMetrics(SM_CYICONSPACING) & ")"
    Debug.Print "ポップアップメニューの位置                                        =(" & xGetSystemMetrics(SM_MENUDROPALIGNMENT) & ")"
    Debug.Print "Microsoft Windows for Penがインストールされているかどうか         =(" & xGetSystemMetrics(SM_PENWINDOWS) & ")"
    Debug.Print "USER.EXEのバージョン                                              =(" & xGetSystemMetrics(SM_DBCSENABLED) & ")"
    Debug.Print "マウスのボタン数                                                  =(" & xGetSystemMetrics(SM_CMOUSEBUTTONS) & ")"
    Debug.Print "システムメトリックの数                                            =(" & xGetSystemMetrics(SM_CMETRICS) & ")"
End Sub

' @(f)
'
' 機能      : システムメトリックに関する情報を取得する関数
'
' 返り値    : 「入手する情報」
'
' 引き数    : nIndex& - 入手する情報を指定する定数。
'
' 機能説明  : システムメトリックに関する情報を取得する関数
'
' 備考      : 特になし
'
Function xGetSystemMetrics(nIndex&) As Long
Attribute xGetSystemMetrics.VB_ProcData.VB_Invoke_Func = " \n14"
    xGetSystemMetrics = GetSystemMetrics(nIndex&)
End Function