教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】コマンドボタンをクリックした時にマウスポインタの形状を変更する方法を教えて!

構文

構文は以下の通りです。

コマンドボタン名.MousePointer = 定数

解説

マウスポインタの形を変更するには、コマンドボタンのMousePointerプロパティを使用します。このプロパティには、さまざまな定数があります。定数について以下で紹介します。

定数 内容
fmMousePointerDefault 0 デフォルトのマウスポインタを使用します。通常は矢印です。
fmMousePointerArrow 1 矢印のマウスポインタを表示します。
fmMousePointerCrosshair 2 十字線のマウスポインタを表示します。
fmMousePointerIBeam 3 Iビームのマウスポインタを表示します。テキストの編集が可能な場所でよく使用されます。
fmMousePointerSizeNESW 6 右上と左下がサイズ変更のポインタを示します。
fmMousePointerSizeNS 7 上下にサイズ変更のポインタを示します。
fmMousePointerSizeNWSE 8 左上と右下がサイズ変更のポインタを示します。
fmMousePointerSizeWE 9 左右にサイズ変更のポインタを示します。
fmMousePointerUpArrow 10 上向き矢印のマウスポインタを表示します。
fmMousePointerHourglass 11 砂時計のマウスポインタを表示します。処理中を示すために使用されます。
fmMousePointerNoDrop 12 ドロップできないことを示す円形のマウスポインタを表示します。

使い方

具体的な使い方を紹介します。

Private Sub CommandButton1_Click()
    ' 処理前にマウスポインタを待機状態に変更
    CommandButton1.MousePointer = 11  ' 11 - Hourglass(砂時計)ポインタ
    ' ここに処理を追加
    ' 処理後にマウスポインタを元に戻す
    CommandButton1.MousePointer = 0   ' 0 - Default(デフォルト)ポインタ
End Sub

上記の例では、コマンドボタンがクリックされた時に、処理前にマウスポインタをHourglass(砂時計)に変更し、処理後にデフォルトの矢印ポインタに戻しています。これにより、ユーザーに処理が進行中であることを視覚的に伝えることができます。

プログラミング例

以下に、プログラミング例を紹介します。

Private Sub CommandButton1_Click()
    ' 処理前にマウスポインタを待機状態に変更
    CommandButton1.MousePointer = 11  ' 11 - Hourglass(砂時計)ポインタ
    ' ここに処理を追加
    For i = 1 To 1000000
        ' 何かの処理を模して待機
    Next i
    ' 処理後にマウスポインタを元に戻す
    CommandButton1.MousePointer = 0   ' 0 - Default(デフォルト)ポインタ
End Sub

この例では、コマンドボタンがクリックされたときに、処理前にマウスポインタをHourglass(砂時計)に変更し、Forループで模擬的な処理を行います。処理後にデフォルトの矢印ポインタに戻します。

まとめ

マウスポインタの変更は、ユーザーに対してわかりやすいフィードバックを提供し、操作の進捗状況を視覚的に伝える手段として積極的に活用してください。