|
根本的にわかっていないがゆえに、見当違いな考え方をしているのだと思うのですが、
----
実行時エラー '-2147418105 (80010007)':
オートメーションエラーです。
呼び出し先(サーバーアプリケーションではなく、サーバー)は消失し、利用できません。すべての接続先は無効です。呼び出しが実行されている可能性があります。
---
というエラーが出てしまい、原因がよくわかりません。
どこをどう考えればよいのか、どうかご指南ください。
<仕様>----------------------------------------------------------------
今、A,B,Cというユーザーフォームがあり、
Aにはふたつのコマンドボタンbとcがあり、
同様にBにはaとc、Cにはaとbというコマンドボタンがあります。
[Ctrl]+[Alt]+[F12]を押すと、変数MY_windowに格納されたフォームを表示します。
コマンドボタンをクリックすることでMY_windowに新たに格納、
すなわち次に表示するフォームを指示し、そのフォームを閉じます。
またフォーム右上の[×]をクリックすると、MY_windowにはそのフォームが格納され、
再び同じフォームが表示されるようにしたいです。
------------------------------------------------------------------------
<ThisBook>----------
Private Sub Workbook_Open()
Call SCkey
Set MY_window = A_window
End Sub
----------------------
<フォーム:A_window>----------
Private Sub B_dush_Click()
Unload Me
Set MY_window = B_window
End Sub
---
Private Sub C_dush_Click()
Unload Me
Set MY_window = C_window
End Sub
---
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Set MY_window = A_window
End Sub
-------------------------------
<フォーム:B_window>----------
Private Sub A_project_Click()
Unload Me
Set MY_window = A_window
End Sub
---
Private Sub C_projecr_Click()
Unload Me
Set MY_window = C_window
End Sub
---
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Set MY_window = B_window
End Sub
-------------------------------
<フォーム:C_window>----------
Private Sub A_cat_Click()
Unload Me
Set MY_window = A_window
End Sub
---
Private Sub B_cat_Click()
Unload Me
Set MY_window = B_window
End Sub
---
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Set MY_window = C_window
End Sub
-------------------------------
<標準モジュール>----------
Option Explicit
Public MY_window As Object
---
Sub SCkey()
Application.OnKey "%^{F12}", "MYshow"
End Sub
---
Sub MYshow()
MY_window.Show
End Sub
---------------------------
以上になります。
フォームと、変数の有効範囲の関係が全くわかっていないのだと思いますが、
どうかよろしくお願いします。
|
|