• ベストアンサー

エクセル VBA エクセルの表示について

下記のプロシージャを実行し、Userform1のみ表示したじょうたいで、他のエクセルファイルを開くとエクセルが表示されません。他のエクセルファイルを開いた時に、エクセルが自動で表示されるような対処法を教えてください。どうかよろしくお願いします。 Private Sub Workbook_Open() Application.Visible = False UserForm1.Show End Sub

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

Application.Visible = False だとExcelそのものを非表示にしますから、よく理解していない人はどうしようもなくなります。 UserForm1.Showだと、ユーザーフォーム以外の操作ができません。それはそれでいいのですが、falseにしておいたほうがいろいろ調べるには都合がいいでしょう。 何をしたいのかわからないので 下記を動作確認テスト用に使ってください。 実行するたびに表示・非表示を切り替えます。 また、他のBookも選択できるようにしています。 Private Sub Workbook_Open() ThisWorkbook.Windows(1).Visible = Not ThisWorkbook.Windows(1).Visible   UserForm1.Show False End Sub

Hirogou32416
質問者

お礼

・UserForm1.Show False ・開いているBookの数によりエクセルの表示/非表示する条件式の追加 この2点で問題を解決することができました。ありがとうございました。また、何かありましたらよろしくお願いします。

Hirogou32416
質問者

補足

回答ありがとうございます。説明不足ですいません。Userform1(自己アレンジした電卓)の使用法を標準の電卓みたいな感じで気軽に使いたいため、下記の条件を備えた対処法を考えてます。 ・エクセルファイルが1つも開かれていない場合には、本体(エクセル)は非表示でUserform1のみ表示されている状態で起動 ・Userform1が記述されているBookのみが開かれている状態(UserForm1のみ表示され、本体(エクセル)は非表示)で、他のBooKを開いた場合に本体(エクセル)を表示させ、開いたBookを表示させる。 ・他のBooKが開かれていて、エクセル起動中に、Userform1が記述されているBookを開くと、本体(エクセル)を非表示にすることなくUserform1を表示。 どうかよろしくお願いします。

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

こんにちは、非表示よりも最小化で行っては Private Sub Workbook_Open()   Application.WindowState = xlMinimized   AppActivate Application.Caption   UserForm1.Show End Sub

Hirogou32416
質問者

お礼

・UserForm1.Show False ・開いているBookの数によりエクセルの表示/非表示する条件式の追加 この2点で問題を解決することができました。回答ありがとうございました。また、何かありましたらよろしくお願いします。

Hirogou32416
質問者

補足

回答ありがとうございます。やはりUserform1(自己アレンジした電卓)の使用法を標準の電卓みたいな感じで気軽に使いたいため、下記の条件を備えた対処法を考えてます。 ・エクセルファイルが1つも開かれていない場合には、本体(エクセル)は非表示でUserform1のみ表示されている状態で起動 ・Userform1が記述されているBookのみが開かれている状態(UserForm1のみ表示され、本体(エクセル)は非表示)で、他のBooKを開いた場合に本体(エクセル)を表示させ、開いたBookを表示させる。 ・他のBooKが開かれていて、エクセル起動中に、Userform1が記述されているBookを開くと、本体(エクセル)を非表示にすることなくUserform1を表示。 どうかよろしくお願いします。

関連するQ&A