質問

どの練習を示すためにユーザマクロを実行内の展望?マクロで周辺の1-30秒で完了します。

避けたいモーダル'msgbox'が出る前にマクロを実行できます

されているのではないかと思いを避ける砂時計カーソルが可能であれば、どうなっているのだろうがしております。

があるのを非モーダル状況メッセージを、このマクロです。

(マクロで運行しているのは、現在選択されmailItemで始ボタンをクイックアクセスツールバーから).

役に立ちましたか?

解決

この記事 (またこの)アプローチの実践と利用の状況バーがあります。

この記事 に見通し"と言ってい

変化のステータスバー
ありません のようになり、ステータスバーの文字列 Microsoft。ステータスバー に晒されていないも Microsoft Officeオブジェクトモデルです。

Outlook.com を提供 コード進捗ボックス.

他のヒント

心にその文字列物事の

カップル、私は他の同様の考えを持っていると確信しています。

1.Show進捗状況を報告したり、進捗状況を報告することができない場合は車種モードでプログレスバーがあり、その上にプログレスバーを持つフォーム 中にあなたの好きなアニメーションGIF(spinnyピザなど)とピクチャボックスと2.Showフォーム。あなたは、ボタンなどをオフにすることができます 3.見通しstausバーで遊ぶ取得するためのAPIを獲得

あなたのマクロで何をしているか、あなたが「上に」フォームを維持し、それに非同期の進捗状況をポンピングに対処する必要があります知っているわけではありません。

乾杯

マーカス

拡大@76melの答えは、素敵ないということを非モーダルuserform.そういうのはあのシーンでラベルとキャプションのようになります: EG status

私のようになって違いますので、以下のuserformとして設定:

  • 非モーダル(物性 F4, 設定 ShowModal false)
    • これをクリックする外部のステータスバーが、うまくいきませんで入力して検索することができます
  • を設定します StartupPosition0-ManualTopLeft になったら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コード自体で最も

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top