| 
    
     |  | のん さん、こんにちわ。 
 >>Private Sub UserForm_Activate()
 >>  ThisWorkbook.Activate 'UserFormのあるブックがBook2.xls=>Thisworkbook
 >>
 >実はりんさんに教えていただいた方法も試してみて
 >確かに上記方法はbook2上でform2を開いた場合はうまくいくのです。
 >しかし、book1からbook2のform2を開くと・・・
 
 今回の動作実験内容
 Book1.xls,Book2.xlsをDドライブのルートに保存
 ■Book1.xlsの標準モジュールに以下を記述
 Sub test()
 Workbooks.Open Filename:="d:\book2.xls"
 Windows("book1.xls").Visible = False
 ActiveWorkbook.Windows("book2.xls").Activate
 Application.Run "book2.xls!ThisWorkbook.Openform2"
 End Sub
 ■Book2.xlsにUserForm1を追加して、以下を記述
 Private Sub UserForm_Activate()
 ThisWorkbook.Activate
 End Sub
 ■Book2.xlsのThisworkbookに以下を記述
 Sub Openform2()
 UserForm1.Show
 End Sub
 
 あと、気になるのは、
 ActiveWorkbook.Windows("book2").Activate ←これがエラーにならないのが不思議です
 
 もしかして、エラートラップ(On Error〜) 入れてますか?
 
 
 |  |