- VB,VBA
 - 
                        
2010-12-17                                                                                                 - 更新:2012-03-23                                             
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&
 | 
||




