|
▼西谷 さくら さん:
>エクセルからUserForm1 を全画面表示し、そこのボタンを押すと小さなUserForm2が出てきてパレットのような役割をします。UserForm2 を見ながらUserForm1上のボタン類を操作したいのですが、さわったとたんにUserForm2が消えて(下に隠れて)しまいます。両方とも vbModeless で干渉しないと思っていたのですが。フォームのZorderもなさそうだし・・・
>環境:WindowsXP,エクセル2000、VBA
[#38813]の質問にレスを入れられたようなので、
私なりの回答です。
標準モジュール
Public Declare Function GetActiveWindow Lib "user32" () As Long
Public Declare Function SetWindowPos Lib "user32.dll" (ByVal hWnd As Long, ByVal st As Long, _
ByVal x As Long, ByVal y As Long, ByVal w As Long, ByVal h As Long, ByVal uFlags As Long) As Long
Sub test()
UserForm1.Show vbModeless
End Sub
ユーザーフォーム1
Private Sub CommandButton1_Click()
UserForm2.Show vbModeless
End Sub
ユーザーフォーム2
Private Sub UserForm_Activate()
Dim hwu As Long
hwu = GetActiveWindow()
Call SetWindowPos(hwu, -1, 0, 0, 0, 0, 3)
End Sub
|
|