• ベストアンサー

EXCEL USERFORMが自動的に起動します

このサイトに出しているもう1つの質問にも絡むのですが、USERFORM1を仕組んであるBOOKを開くと、そのUSERFORM1が自動的に起動します。こちらの使い勝手としてはそれで問題ないのですが、なぜBOOKが開くと同時にUSERFORM1が起動するのか、あるいはUSERFORM1が起動するタイミングはどこで規定されているのか、気になりましたので質問させてください。ちなみに、このBOOKにはUSERFORM1以外にマクロは無く、見たところUSERFORM1の起動タイミングを規定しているような記述はどこにもありません。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

NO2です。 回答が雑で申し訳ありません、仮に次の様なコードで可能と思いますが如何でしょうか。 Personal.xlsのThisWorkBookに以下のコードを設定(Userforme1はbook1定義とします)   Private Sub Workbook_Open()   Application.Run ("'\~パス\Book1.xls.'!Userforme1.Show")   End Sub

bokenoki
質問者

お礼

トンチンカンな質問にお付き合いいただいて本当にありがとうございます。感謝に耐えません。 さて、ご教授いただいた方法については、 (1)パスが毎回違う(約25通りあります) (2)ブック名が毎回違う(無限に増えます) という問題があります。 それらを毎回書き直すというのは、残念ながら手間的にちょっと不可能です。 ので、この方法はちょっと難しいかなと感じます。 ユーザーフォームがなぜ初回だけ隠れてしまって、 2回目以降はちゃんと前面に出てくるのか、 その理由だけでも分かればと思うのですが...。 お時間がありましたらよろしくお願いします。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

NO1です。 マクロブック(c:\~Excel\xlstartフォルダに設定:通常はPersonal.xls)に設定していれば同じ振る舞いになりますが如何でしょうか。

bokenoki
質問者

お礼

ご回答ありがとうございます。UserForm1をVBAProject(Personal.XLS)の下にコピーするということでしょうか?それでしたら、やってみましたが状況は変わりませんでした。とんちんかんだったらすみません。よろしくお願いします。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

2種類想定できます。 (1)標準モジュールに定義    Sub Auto_Open()      UserForm1.Show    End Sub (2)ThisWorkbook モジュールに定義    Private Sub Workbook_Open()     UserForm1.Show    End Sub

bokenoki
質問者

お礼

回答ありがとうございました。ご指摘の(2)が答えでした。ついでと言っては失礼なのですが、今出しているもう一つ質問についてはお分かりになりませんか?何か気が付いた点だけでもコメントいただければ幸いです。よろしくお願いします。