Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


76393 / 76738 ←次へ | 前へ→

【4767】Re:マクロのuserformを全画面表示したい
回答  bykin  - 03/4/4(金) 20:10 -

引用なし
パスワード
   こんばんわ。

>マクロ実行するのは、どの「sub」から実行するのでしょうか。
ややこしいのでもう一度説明します。

1.標準モジュールを用意して、下記コード(2つのプロシージャ)をコピペします。
  Sub 長い処理() の中には実際の処理を記入してください。

Sub test()
  Dim OrgState As Integer
  OrgState = Application.WindowState
  Application.WindowState = xlMinimized
  Load UserForm1
  UserForm1.Show
  MsgBox "処理終了"
  Application.WindowState = OrgState
  Unload UserForm1
  Set UserForm1 = Nothing
End Sub

Sub 長い処理()
  '*********ここからは実際の処理を記入(下のコードはダミーです)
  Dim i As Long
  Dim j As Long
  For i = 1 To 10000
    j = j * 1
    DoEvents
  Next
  '*********ここまで
End Sub

2.ユーザーフォーム(UserForm1)を挿入して、モジュールに下記コードをコピペします。
  フォームにはラベル等で「処理中」と書いておけばええと思います。

Private Sub UserForm_Activate()
  長い処理
  Me.Hide
End Sub

3.test() プロシージャを実行します。
  実行するとフォームが表示され、それと同時にフォームの Activate イベントによって
  Sub 長い処理() が実行されます。

4.長い処理() が終了すると Me.Hide でフォームは Me.Hide で非表示となり、
  元の test() プロシージャに制御が戻り、「処理終了」のメッセージが表示されます。

・・・これでわかりまっか?

<おまけ>
長い処理そのものをフォームモジュールの中に書いてもかまいまへん。
その場合は標準モジュールの Sub 長い処理() は削除して、その代わりにフォームモジュールの
コードを下記のように変更してください。(最後の Me.Hide を忘れないこと)
処理が短いのならこっちのほうがいいかも・・・

Private Sub UserForm_Activate()
  '*********ここからは実際の処理を記入(下のコードはダミーです)
  Dim i As Long
  Dim j As Long
  For i = 1 To 10000
    j = j * 1
    DoEvents
  Next
  '*********ここまで
  Me.Hide
End Sub

試してみてな。
ほな。

6 hits

【4681】マクロのuserformを全画面表示したい あゆ 03/4/2(水) 17:31 質問
【4684】Re:マクロのuserformを全画面表示したい bykin 03/4/2(水) 23:27 回答
【4712】Re:マクロのuserformを全画面表示したい あゆ 03/4/3(木) 14:42 お礼
【4725】Re:マクロのuserformを全画面表示したい bykin 03/4/3(木) 18:49 回答
【4751】Re:マクロのuserformを全画面表示したい あゆ 03/4/4(金) 11:41 質問
【4767】Re:マクロのuserformを全画面表示したい bykin 03/4/4(金) 20:10 回答
【4768】Re:マクロのuserformを全画面表示したい bykin 03/4/4(金) 20:12 発言
【4705】ユーザフォームをモードレスで・・・ こう 03/4/3(木) 13:13 回答
【4711】Re:ユーザフォームをモードレスで・・・ あゆ 03/4/3(木) 14:38 質問
【4724】GetDesktopWindow こう 03/4/3(木) 18:15 回答
【4764】Re:GetDesktopWindow あゆ 03/4/4(金) 17:23 お礼
【4734】【過去ログ】ブックを表示させないでユーザ... こう 03/4/3(木) 23:52 発言

76393 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free