プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります

私は時間が掛かるプログラムの実行に際し、途中途中にUserFormで経過を出力していますが時々前面に出ずに裏で止まっている時が有ります

前面に出すコードはWebからコピーしています
Option Explicit

'...常にフォームを最前面に表示するための宣言(HPよりコピー)
Private Declare Function GetForegroundWindow Lib "user32" () 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 As Long = -1
Private Const SWP_NOSIZE As Long = &H1&
Private Const SWP_NOMOVE As Long = &H2&

Sub UserForm_activate()

'...常にフォームを最前面に表示するための宣言(HPよりコピー)
Call SetWindowPos(GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
Me.StartUpPosition = 1

UserForm52.Top = 200
UserForm52.Left = 600

DoEvents
Sleep 5000
Unload Me
End Sub

そんな経験はないですか?
もしあったら教えてください、その対処法を

以上、よろしくお願いいたします

質問者からの補足コメント

  • うーん・・・

    早速のご回答ありがとうございます

    すみませんもう少し具体的に教えてください
    よろしくお願い申し上げます

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/04/15 14:43

A 回答 (3件)

① ユーザーフォームを出すなら、出しっぱなしで裏で処理をする。



② 時間の掛かる処理を高速化する。
    • good
    • 0
この回答へのお礼

早速のご回答、ありがとうございます

出しっぱなしも面白いかもしれませね
今度やってみます

お礼日時:2022/04/15 17:34

_NET TIPS ウィンドウを常に最前面に表示するには? - Windowsフォーム - @IT


https://atmarkit.itmedia.co.jp/fdotnet/dotnettip …
    • good
    • 0
この回答へのお礼

再度、ご回答いただきありがとうございます

TopMost、勉強になりました
残念ながらVbaのプロパティには有りませんでしたが
これの意味が分かっただけども助かります

これからもよろしくお願いします

お礼日時:2022/04/15 17:30

そんなのプロパティをいじればどうにでもなる。

この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A