• ベストアンサー
  • 困ってます

ExcelのVBAでフォームだけ表示させる方法

  • 質問No.7917114
  • 閲覧数1624
  • ありがとう数2
  • 回答数3

お礼率 90% (9/10)

はじめまして。

UserForm1で、デジタルで時間を表示する(デジタル時計)を作成しています。
Excelのアプリケーションを表示せず、フォームのみ表示させたいので、
Application.Visible = Falseとしたいのですが、この方法だと、他のExcel
ファイルを起動する際に、Excelが見えなくなってしまいます。

■やりたいこと
・Excelファイルが1つも開かれていない場合、Excelを非表示にして
 Userform1のみ表示されている状態で起動する
・Userform1のみ表示している状態で、他のBooKを開いた場合、
 Excelを表示して開いたBookを表示させる
・他のBooKを開いている状態で、Userform1が記述されているBook
 を開いた場合、ExcelもUserform1も表示させる
・他のBookを閉じるて、Userform1が記述されているBookのみになった
 場合、Excelを非表示にしてUserfrom1のみ表示されている状態にする

自分自身(Userform1を記述しているBook)のみ起動している時には、
Application.Visible=falseにすれば良いのだと思いますが、どういうロジック
を組めば良いかご教授いただければ幸いです。

すみませんが、よろしくお願い致します。
それ以外の時は

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 52% (91/173)

無理。
つうか VBA で苦労してやる内容じゃない。
だいたいが、何に使うのか知らないけれど Excel でやる意味あるの?

時計を表示する Excel ファイルと、時計を表示しているときに開く別の Excel ファイルとの関係がわからない。
時計を表示する Excel ファイルは単にユーザーフォームを表示して時計を刻み続けるだけ。
非表示になっている Excel アプリケーションを表示させるのは、その他の Excel ファイルに書き込むコードの役目であり、時計の Excel ファイルではない。
つまり時計を表示させているときに同時使用する Excel ファイルが限定的じゃない限り破綻する。

質問文をきちんと書き直してみた。
こしてみると、時計表示用 Book 以外にその PC で使用するすべての Book にもコードを書かなければならないということがわかる。
・Excelファイルが1つも開かれていない場合、時計表示用Bookのコードが Excel を非表示にして Userform1 のみ表示されている状態にする。
・他のBooKを開いている状態で、時計表示用 Book を開いた場合、時計用 Book は Excel を非表示にせずに Userform1 を表示させる。
・Userform1 のみ表示している状態で、他の BooK を開いた場合、他の Book のコードが Excel を 再表示する。
・他の Book を閉じて、時計表示用 Book だけになる場合、最後に閉じる他の Book のコードが Excel を非表示にして Userform1 のみ表示されている状態にする。
・Userform1 が表示されていても、他の Book のシートや Excel の各種ユーザー インターフェイスが普通に使用できること。

VB 2012 Express でもインストールして Windows フォームのアプリを作ったほうが早いし、シンプルだと思う。

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 70% (1019/1451)

他のことに挑戦することをお勧めします。
Book または Bookの中のUserFormの中で
定期的に他のBookが開かれていないか workbooks.count とかでチェックして
開かられていたら・・・
開かれていなかったら・・・
の分岐が基本だと思いますが
『定期的』が問題です。
例えば、Do ~ Loop の無限ループで・・などと考えても
UserForm すらまともに機能しないでしょうし
他のBookも開けないんじゃないかと・・(検証してません)
たとえ開けたとしても危なくて何も出来ないのでは?

では、全く出来ないかというと、そうでもなくて
ClassモジュールとAPIを使えば何とかなるかも知れません。
しか~~~~~~~~~~し、べらぼーに難しそうです。
私は根性なし・スキルなしなので止めときます。。。

Tips15: VBAでも出来る [ タイマーコントロール ] クラスモジュール (Ver 3.1)
http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips15.htm
お礼コメント
siragami2

お礼率 90% (9/10)

回答ありがとうございます。
教えて頂いたURLを参考にしてみます。
ご助言ありがとうございました。
投稿日時:2013/01/30 17:21
  • 回答No.2

ベストアンサー率 43% (196/452)

まぁ、フリーソフトの時計みたいなものが Excel の作業と連動したいような
事かなとも思うけど、概ねNo1さんと同意見です。
お礼コメント
siragami2

お礼率 90% (9/10)

回答ありがとうございます。
また助言ありがとうございました。
他の方からも頂いた助言を受けて他の言語で頑張って
みようと思います。ありがとうございました。
投稿日時:2013/01/30 17:22
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ