http://www.loadsystem.net/api/api26.htm
Accessで使えるAPI:ロードシステム(Loadsystem Inc.)
Windows標準のシステムカーソルはシステムディレクトリ下(拡張子 *.cur)にあるので、それをLoadCursorFromFileとすればよいのでは。
Screen.MousePointer = 7
とかでだめでしょうか?
代入する値はURLを参考に(少し違うかもしれませんが)してください。
Screen.MousePointer = 7 は 上下 2 方向を指している矢印のポインタを指定する場合です。VB の MousePointer プロパティを例えに使うならば、MousePointer の設定値が5,6,8等のものです。Access VBA の MousePointer プロパティにはこの設定値がありません。
それでは、こんな感じでどうでしょうか?
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_ARROW = 32512&
Private Const IDC_WAIT = 32514&
Private Const IDC_SIZENESW = 32643&
Private Const IDC_SIZENWSE = 32642&
Private Const IDC_SIZEALL = 32646&
Public Sub SetCursorNESW()
Dim hCur As Long, lWait As Long
hCur = LoadCursor(0&, IDC_SIZENESW)
Call SetCursor(hCur)
’’ 重たい処理(この間だけ斜め左下がりの両方向矢印)
For lWait = 0 To 1000
Me.Caption = hCur & ” ” & lWait
Next
End Sub
解決しました。
shootingstar さんのコードが参考になりました。
私も、LoadCursor(NULL, ・・・ を使おうと思っていたのですがうまくいかなくて質問したのです。
APIビューアからコピペしてくると、
Public Declare Function LoadCursor ・・・ lpCursorName As String) As Long
となってしまうんですね。
第2引数のTypeを String から Long に直さないとだめだったんです。
Public Declare Function LoadCursor ・・・ lpCursorName As Long) As Long
ありがとうございました。
すみません、私の説明が悪かったようです。Windows標準に設定されている・・・というのは、 コントロールパネルのマウスからユーザーが System に設定しているアイコンのことです。(恐らく)これはPCごとに違うので、 LoadCursorFromFile を使って設定すると、本来ユーザーが設定しているマウスカーソルとは違うものになってしまう可能性があるわけです。
分かりづらくて申し訳ありませんでした。