Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


53518 / 76732 ←次へ | 前へ→

【28027】「呼び出し先は消失し、利用できません。...
質問  わさび  - 05/8/26(金) 19:46 -

引用なし
パスワード
   根本的にわかっていないがゆえに、見当違いな考え方をしているのだと思うのですが、

----
実行時エラー '-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
---------------------------


以上になります。
フォームと、変数の有効範囲の関係が全くわかっていないのだと思いますが、
どうかよろしくお願いします。
0 hits

【28027】「呼び出し先は消失し、利用できません。... わさび 05/8/26(金) 19:46 質問
【28085】Re:「呼び出し先は消失し、利用できません... Hirofumi 05/8/28(日) 13:25 発言
【28098】Re:「呼び出し先は消失し、利用できません... Hirofumi 05/8/28(日) 17:58 回答
【28108】Re:「呼び出し先は消失し、利用できません... わさび 05/8/29(月) 10:38 お礼
【28135】Re:「呼び出し先は消失し、利用できません... Hirofumi 05/8/29(月) 19:25 回答
【28136】Re:「呼び出し先は消失し、利用できません... わさび 05/8/29(月) 19:30 お礼

53518 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free