Excel VBA質問箱 IV

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

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


67088 / 76738 ←次へ | 前へ→

【14209】Re:進行状況の表示について
発言  ichinose  - 04/5/23(日) 18:50 -

引用なし
パスワード
   ▼miyake さん:
こんばんは。

>いつもお世話になっております。
>進行状況を表示する方法、たとえば、終了ボタンを押すと、「ただいま終了中です」のようなメッセージをメッセージボックス等に表示させる方法を考えています。
>
>下記は、フォーム(frmフォーム1)上にボタン(cmd終了)を割り付け、終了処理をするものです。
>フォームのCaptionにはメッセージが表示されますが、メッセージボックス等により、メッセージを画面の前面に表示させたいのです。

私は、こういう場合は、動的にラベルコントロールを貼り付けたり、
消したりしています。一例ですが、
'===========================================================
Private Sub CommandButton1_Click()
  Call disp_mes(True, UserForm1, "終了の処理中")
  DoEvents
  For i = 1 To 1000000
   j = j + 1
   Next
   
  Call disp_mes(False, UserForm1)

End Sub
'==========================================================
Sub disp_mes(dsp As Boolean, frm, Optional mes As String)
  Static lbl As msforms.Control
  If dsp = True Then
   Set lbl = frm.Controls.Add("Forms.Label.1", "end_mes", False)
   With lbl
     .Width = (Len(mes) + 1) * 24
     .Top = frm.Height / 3
     .Left = (frm.Width - .Width) / 2
     .Height = 34
     .SpecialEffect = fmSpecialEffectSunken
     .BackColor = &H80FFFF
     .TextAlign = fmTextAlignCenter
     .Font.Size = 24
     .Caption = mes
     .Visible = True
     End With
  Else
   If Not lbl Is Nothing Then
     frm.Controls.Remove lbl.Name
     Set lbl = Nothing
     End If
   End If
End Sub

複数のユーザーフォームで同様な処理をするときなんかは、
いいかもしれませんよ!!
試してみて下さい。
0 hits

【14197】進行状況の表示について miyake 04/5/23(日) 13:19 質問
【14206】Re:進行状況の表示について ちん 04/5/23(日) 17:39 回答
【14209】Re:進行状況の表示について ichinose 04/5/23(日) 18:50 発言

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