展望VBAマクロ:ベストを示すような'お待ちください'
質問
どの練習を示すためにユーザマクロを実行内の展望?マクロで周辺の1-30秒で完了します。
避けたいモーダル'msgbox'が出る前にマクロを実行できます
されているのではないかと思いを避ける砂時計カーソルが可能であれば、どうなっているのだろうがしております。
があるのを非モーダル状況メッセージを、このマクロです。
(マクロで運行しているのは、現在選択されmailItemで始ボタンをクイックアクセスツールバーから).
他のヒント
カップル、私は他の同様の考えを持っていると確信しています。
1.Show進捗状況を報告したり、進捗状況を報告することができない場合は車種モードでプログレスバーがあり、その上にプログレスバーを持つフォーム 中にあなたの好きなアニメーションGIF(spinnyピザなど)とピクチャボックスと2.Showフォーム。あなたは、ボタンなどをオフにすることができます 3.見通しstausバーで遊ぶ取得するためのAPIを獲得
あなたのマクロで何をしているか、あなたが「上に」フォームを維持し、それに非同期の進捗状況をポンピングに対処する必要があります知っているわけではありません。
乾杯
マーカス
拡大@76melの答えは、素敵ないということを非モーダルuserform.そういうのはあのシーンでラベルとキャプションのようになります:
私のようになって違いますので、以下のuserformとして設定:
- 非モーダル(物性 F4, 設定
ShowModal
false)- これをクリックする外部のステータスバーが、うまくいきませんで入力して検索することができます
- を設定します
StartupPosition
へ0-Manual
やTop
やLeft
になったら100までの状況をフォームが表示される左上隅の画面を他のメッセージがセンターによるデフォルト)
セットにラベル value
一部のデフォルトのテキストのUserform初荷重
Public strStatus As String
Public Const defaultStatus As String = "Default status text" 'set this to whatever you want
Sub statusReporter()
frmStatus.Show
'''
'Your code here
'''
frmStatus.lblStatus = "Step 1"
'...
frmStatus.lblStatus = "Step 2"
'...
'''
'Unload the form
'''
frmStatus.lblStatus = defaultStatus
frmStatus.Hide
End Sub
注のように、Excelの Application.Statusbar
必ずリセットのuserformその場合のデフォルト値を使用すでに同じインスタンスのExcel
を任意に使用すぎる
'Written By RobDog888 - VB/Office Guru™
'Add a Command Button so you can toggle the userform's topmost effect
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" ( _
ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private mlHwnd As Long
Private Sub UserForm_Initialize()
Dim overTim As Single
overTim = Timer
mlHwnd = FindWindow("ThunderDFrame", "Status") 'Change "Status" to match your userforms caption
Do While mlHwnd = 0 And Timer - overTim < 5
mlHwnd = FindWindow("ThunderDFrame", "Status")
DoEvents
Loop
'Set topmost
SetWindowPos mlHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub
のuserformコード自体で最も