過去ログ

                                Page     356
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼砂時計…  JUN 02/11/15(金) 16:51
   ┣Re:砂時計…  ichinose 02/11/15(金) 21:24
   ┃  ┗Re:砂時計…  JUN 02/11/16(土) 0:35
   ┃     ┗Re:砂時計…  ichinose 02/11/16(土) 12:24
   ┃        ┗Re:砂時計…  JUN 02/11/17(日) 23:57
   ┣Re:砂時計…  よろずや 02/11/16(土) 12:18
   ┃  ┗Re:砂時計…  JUN 02/11/17(日) 23:33
   ┃     ┣Re:砂時計…  JUN 02/11/18(月) 0:01
   ┃     ┗Re:砂時計…  よろずや 02/11/18(月) 23:41
   ┗砂時計…のお礼  JUN 02/11/19(火) 8:49

 ───────────────────────────────────────
 ■題名 : 砂時計…
 ■名前 : JUN
 ■日付 : 02/11/15(金) 16:51
 -------------------------------------------------------------------------
   こんいちは。 お世話になります。
また、いきずまっています。


ユーザーフォーム上で、処理中にカーソルを砂時計にしたいのですが、
Application.Cursor = xlWait や
Form1.MousePointer = fmMousePointerHourGlass を使っても
カーソルが変化してくれません。何か他に設定等があるのでしょうか。
教えてください。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : ichinose  ■日付 : 02/11/15(金) 21:24  -------------------------------------------------------------------------
   ▼JUN さん:
こんばんは
>こんいちは。 お世話になります。
>また、いきずまっています。
>
>
>ユーザーフォーム上で、処理中にカーソルを砂時計にしたいのですが、
>Application.Cursor = xlWait や
>Form1.MousePointer = fmMousePointerHourGlass を使っても
>カーソルが変化してくれません。何か他に設定等があるのでしょうか。
>教えてください。
標準モジュールに例えばですが、
'=======================================
Sub ChangeCursor(idx As Integer)
  Select Case idx
   Case 0
    Application.Cursor = xlDefault
   Case 1
    Application.Cursor = xlWait
   End Select
End Sub
のようなコードを記述してみて下さい。
フォームモジュールから上記を呼び出してみて下さい。
尚、この場合は、表示だけですが・・・。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : JUN  ■日付 : 02/11/16(土) 0:35  -------------------------------------------------------------------------
   早速の回答ありがとうございます。

フォームモジュールから標準モジュールを呼び出すには
どうやればよいのでしょうか。

なにぶん初心者なもので…。スイマセン。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : ichinose  ■日付 : 02/11/16(土) 12:24  -------------------------------------------------------------------------
   ▼JUN さん:
こんにちは。
>フォームモジュールから標準モジュールを呼び出すには
>どうやればよいのでしょうか。
一例ですが、
次にユーザーフォームにコマンドボタンをひとつ付けてください。
フォームのボタンのイベントモジュールとして、
'=====================================================================
Private Sub CommandButton1_Click()
  Call ChangeCursor(1)
'  普通にcallすればいいんですが・・。
  For i = 1 To 10000
   For j = 1 To 10000
    Next
   Next
  Call ChangeCursor(0)
End Sub

標準モジュールには以下のコードを記述します。
'=====================================================================
Sub main()
  UserForm1.Show
End Sub
'=====================================================================
Sub ChangeCursor(idx As Integer)
  Select Case idx
   Case 0
    Application.Cursor = xlDefault
   Case 1
    Application.Cursor = xlWait
   End Select
End Sub

「main」を実行してボタンをクリックしてみて下さい。
「砂時計」が表示されるはずですが・・・。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : JUN  ■日付 : 02/11/17(日) 23:57  -------------------------------------------------------------------------
   ▼ichinose さん:
>一例ですが、
>次にユーザーフォームにコマンドボタンをひとつ付けてください。
>フォームのボタンのイベントモジュールとして、
>'=====================================================================
>Private Sub CommandButton1_Click()
>  Call ChangeCursor(1)
>'  普通にcallすればいいんですが・・。
>  For i = 1 To 10000
>   For j = 1 To 10000
>    Next
>   Next
>  Call ChangeCursor(0)
>End Sub
>
>標準モジュールには以下のコードを記述します。
>'=====================================================================
>Sub main()
>  UserForm1.Show
>End Sub
>'=====================================================================
>Sub ChangeCursor(idx As Integer)
>  Select Case idx
>   Case 0
>    Application.Cursor = xlDefault
>   Case 1
>    Application.Cursor = xlWait
>   End Select
>End Sub
>
>「main」を実行してボタンをクリックしてみて下さい。
>「砂時計」が表示されるはずですが・・・。

スイマセン。
上記のプログラムをまるごとコピーして実行してみました。
excelのウィンドウが表示されているときは、うまく砂時計になってくれるのですが、
excelのウィンドウが、最小化のときには砂時計に変化してくれません。
私のいま、手がけているものは、実行するとForm1が表示され、excelのウィンドウは、
最小化されるのです。コレだと、砂時計に変化させるのは、不可能なのでしょうか。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : よろずや  ■日付 : 02/11/16(土) 12:18  -------------------------------------------------------------------------
   ▼JUN さん:
>こんいちは。 お世話になります。
>また、いきずまっています。
>
>
>ユーザーフォーム上で、処理中にカーソルを砂時計にしたいのですが、
>Application.Cursor = xlWait や
>Form1.MousePointer = fmMousePointerHourGlass を使っても
>カーソルが変化してくれません。何か他に設定等があるのでしょうか。
>教えてください。
シート上でしたら、Application.Cursor
ユーザーフォーム上なら、Form1.MousePointer で出来るはずですが...

何か他に原因があると思います。
処理内容を、もチョット詳しく書いていただければ何か判るかもしれません。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : JUN  ■日付 : 02/11/17(日) 23:33  -------------------------------------------------------------------------
   よろずやさん 今晩は…。

こんなかんじなのですが…。

Private Sub CommandButton2_Click()
  Dim i,ms
    .
    .
  Form1.MousePointer = fmMousePointerHourGlass
  Do Until i = ms

    ’処理

  Loop '終わり
  Form1.MousePointer = fmMousePointerDefault
End Sub


CommandButton2をクリックして、処理を行っている間、カーソルが
砂時計になって欲しいのです。何かおかしい所がありますか。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : JUN  ■日付 : 02/11/18(月) 0:01  -------------------------------------------------------------------------
   よろずやさん。

一点、気になるところがあります。

私の今手がけているものは、実行されると、Form1が表示され、
excelのウィンドウは、最小化されるのです。
コレだと、カーソルを砂時計に変化させるのは、不可能なのでしょうか。
 ───────────────────────────────────────  ■題名 : Re:砂時計…  ■名前 : よろずや  ■日付 : 02/11/18(月) 23:41  -------------------------------------------------------------------------
   >Private Sub CommandButton2_Click()
>  Dim i,ms
>    .
>    .
>  Form1.MousePointer = fmMousePointerHourGlass
DoEvents
>  Do Until i = ms
>
>    ’処理
>
>  Loop '終わり
>  Form1.MousePointer = fmMousePointerDefault
>End Sub
なんてやると出来ますね。
 ───────────────────────────────────────  ■題名 : 砂時計…のお礼  ■名前 : JUN  ■日付 : 02/11/19(火) 8:49  -------------------------------------------------------------------------
   おはようございます。

うまくいきました。

ichinoseさん、よろずやさん、

本当にありがとうございました。

きっとまたお世話になると思いますので、

よろしくお願いいたします。

では…。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 356