- VB,VBA
- 2010-12-17 - 更新:2012-03-23
この記事は最終更新日から1年以上経過しています。
ACCESS VBAにてマウスポインターの形状を変更するには
通常の砂時計などは、用意されたプロパティ・メソッドで変更可能
例)
DoCmd.Hourglass True '砂時計ポインターにする Screen.MousePointer = 9 '左右の矢印にする
既定値 | 0 |
矢印 | 1 |
I字型 | 3 |
上下の矢印 | 7 |
左右の矢印 | 9 |
砂時計 | 11 |
上記以外の形状に変更したい場合
Win32 APIを使用
General部分にAPI関数を定義(モジュールに書く場合はPublicを使用)
Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" _ (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long Private Declare Function SetCursor Lib "user32" _ (ByVal hCursor As Long) As Long
ハンドカーソルの定数を定義
Private Const IDC_HAND = 32649& 'ハンドカーソル
マウスカーソルの戻り値(形状)格納用
Private mCursor As Long
フォーム起動時に、ハンドカーソルを取得
Private Sub Form_Load(Cancel As Integer) 'マウスポインターを手の形にするためのマウスカーソルを取得 mCursor = LoadCursor(0&, IDC_HAND) End Sub
マウスオーバー時、マウスポインターをハンドカーソルにしたいコントロールの「マウスボタン移動時」イベントに以下の処理を記述
Private Sub Label_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'ラベル上でマウスを手の形にする Call SetCursor(mCursor) End Sub
APIでの値(定数) | VBAでの値 | マウスカーソルの形 |
---|---|---|
IDC_APPSTARTING | 32650& | 小さい砂時計付の矢印カーソル |
IDC_ARROW | 32512& | 標準の矢印カーソル |
IDC_CROSS | 32515& | 十字カーソル |
IDC_HAND | 32649& | ハンドカーソル |
IDC_HELP | 32651& | 疑問符付の矢印カーソル |
IDC_IBEAM | 32513& | I(縦線)カーソル |
IDC_NO | 32648& | 禁止カーソル |
IDC_SIZEALL | 32646& | 4方向の矢印カーソル |
IDC_SIZENESW | 32643& | 右斜め上の両方向き矢印カーソル |
IDC_SIZENS | 32645& | 上下の両方向き矢印カーソル |
IDC_SIZENWSE | 32642& | 右斜め下の両方向き矢印カーソル |
IDC_SIZEWE | 32644& | 左右の両方向きカーソル |
IDC_UPARROW | 32516& | 上向きの垂直矢印カーソル |
IDC_WAIT | 32514& | 砂時計カーソル |
Win32 APIの定数はVBAではそのまま使用できないので、定数として宣言して使用します。 例) Public Const IDC_APPSTARTING = 32650&
|