プロが教えるわが家の防犯対策術!

いつもお世話になります

ウェブで調べて下記のステートメントでフォームを常に最前面に出したいのですが
フォーム内でブックを開くと隠れてしまいます

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&

Private Sub UserForm_Activate()
Call SetWindowPos(GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)

いろいろ試しましたが、良く分かりません
何か良い方法が有るのでしょうか?
教えて頂かれば幸いです、よろしくお願いいたします

A 回答 (1件)

こんにちは。



試してみた感じではよさそうですが、そのコードでひとつ抜けているのは、
UserForm を ShowModal をFalse にしておくことではないでしょうか?そうしないと、Workbook から離れないことになってしまうと思います。

なお、別の質問でApplication.Input の位置については、出来ないということで、Close されてしまったようですが、あれはSetWindowsHookEx を使えば可能だと思いますね。
    • good
    • 0
この回答へのお礼

ありがとうございます
そんなものがあるとは知りませんでした

別の質問の件についてもお答えを頂き感謝しています
ちょっと難しそうですがトライしてみます

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

お礼日時:2017/04/26 14:42

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

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


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