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 を使っても カーソルが変化してくれません。何か他に設定等があるのでしょうか。 教えてください。 |
▼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 のようなコードを記述してみて下さい。 フォームモジュールから上記を呼び出してみて下さい。 尚、この場合は、表示だけですが・・・。 |
早速の回答ありがとうございます。 フォームモジュールから標準モジュールを呼び出すには どうやればよいのでしょうか。 なにぶん初心者なもので…。スイマセン。 |
▼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」を実行してボタンをクリックしてみて下さい。 「砂時計」が表示されるはずですが・・・。 |
▼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のウィンドウは、 最小化されるのです。コレだと、砂時計に変化させるのは、不可能なのでしょうか。 |
▼JUN さん: >こんいちは。 お世話になります。 >また、いきずまっています。 > > >ユーザーフォーム上で、処理中にカーソルを砂時計にしたいのですが、 >Application.Cursor = xlWait や >Form1.MousePointer = fmMousePointerHourGlass を使っても >カーソルが変化してくれません。何か他に設定等があるのでしょうか。 >教えてください。 シート上でしたら、Application.Cursor ユーザーフォーム上なら、Form1.MousePointer で出来るはずですが... 何か他に原因があると思います。 処理内容を、もチョット詳しく書いていただければ何か判るかもしれません。 |
よろずやさん 今晩は…。 こんなかんじなのですが…。 Private Sub CommandButton2_Click() Dim i,ms . . Form1.MousePointer = fmMousePointerHourGlass Do Until i = ms ’処理 Loop '終わり Form1.MousePointer = fmMousePointerDefault End Sub CommandButton2をクリックして、処理を行っている間、カーソルが 砂時計になって欲しいのです。何かおかしい所がありますか。 |
よろずやさん。 一点、気になるところがあります。 私の今手がけているものは、実行されると、Form1が表示され、 excelのウィンドウは、最小化されるのです。 コレだと、カーソルを砂時計に変化させるのは、不可能なのでしょうか。 |
>Private Sub CommandButton2_Click() > Dim i,ms > . > . > Form1.MousePointer = fmMousePointerHourGlass DoEvents > Do Until i = ms > > ’処理 > > Loop '終わり > Form1.MousePointer = fmMousePointerDefault >End Sub なんてやると出来ますね。 |
おはようございます。 うまくいきました。 ichinoseさん、よろずやさん、 本当にありがとうございました。 きっとまたお世話になると思いますので、 よろしくお願いいたします。 では…。 |