アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAマクロでパソコン画面からエクセルを非表示にする場合、

Sub TEST1()
Application.visible = False
End Sub

で画面からエクセルが消えると思いますが、消えたエクセルはどうなってしまうのでしょうか?
何もしなければいつまでもそのままなのでしょうか?
電源を切ればでてくるのでしょうか?

Application.visible = Trueで表示されるのはわかりますが、消えたエクセルにどうやってそのマクロを作動させたら良いのでしょうか?
10秒後に自動的に再表示させる方法はマクロに最初から

Application.OnTime Now + TimeValue("00:00:10) などで自動実行させればよいのでしょうが、そうでない場合の再表示方法を教えてください。

A 回答 (3件)

 Application.visible = Falseで消えたExcelは、画面表示から消えただけなので、見えない状態のまま動き続けています。

(^^;
 外部からExcelのオブジェクトを操作したのなら、Excelのオブジェクトを開放すれば非表示になっているExcelを終了する事もできますが。
 見えない状態のExcelを手動で操作する事はできないので、何らかの方法で外部から操作する以外に手だては無いでしょう。

 NT系のOSならば、タスクマネージャのプロセスでExcelのプロセスを見つけ出して非表示になっているExcelのプロセスを強制終了が一番簡単でしょう。
 9x系のタスクマネージャはウインドウが無いアプリケーションは表示されない(非表示状態のExcelは、ウインドウが存在しない)ので、Systemを再起動するのが一番簡単かも。
 他のプログラム(例えばWordのVBAとか、VBSとか・・・)から非表示になっているExcelのオブジェクトを操作して表示を戻す?
 これも不可能ではありませんが・・・。

 基本的には、Excelから起動したVBAで、Application.visible = Falseにしたら、そのプログラムが終了する前にApplication.visible = Trueに戻す事をしないといけませんね。

Sub TEST1()
Application.visible = False
MsgBox "ボタンを押すと、再表示"
Application.visible = True
End Sub

 ・・・とか。

 Application.visibleを操作するようなマクロをテストする時は、万一アルゴリズムやコーディングに間違いがあって非表示になったまま・・・なんて事が無いように、かならずVBA Editorを起動した状態で行いましょう。
 VBA Editorが動いていれば、間違いをその場で修正したり、その場で間に合わせのコードを実行して表示を元に戻したりできますから。

(Win9x系でも、下のURLにあるフリーソフトウエア等を常駐して置けば、非表示のプロセスの終了も可能かもしれません。
 参考までに。)

参考URL:http://www.vector.co.jp/soft/win95/util/se144469 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

>9x系のタスクマネージャはウインドウが無いアプリケーションは表示されない(非表示状態のExcelは、ウインドウが存在しない)ので、Systemを再起動するのが一番簡単かも。

すみません、Systemの再起動とはパソコンの再起動と同じことなのでしょうか?
それなら簡単に再起動して非表示になったエクセルを終了させられますね?
教えて下さいますようお願いします。

お礼日時:2002/11/23 01:27

>すみません、Systemの再起動とはパソコンの再起動と同じことなのでしょうか?


>それなら簡単に再起動して非表示になったエクセルを終了させられますね?
 その通りです。
 Windowsを終了する時は、ウインドウがあろうが無かろうが、全ての動作中プロセスを終了しますから、Windowsを終了/再起動すれば、非表示になっているExcelも自動的に終了します。
 ただ、プログラム(マクロも含めて)のテスト中に、何度も何度も再起動していたのでは、能率が悪いですからね。
 先の回答にURLを書いたフリーソフトウエアのProcess++のような、非表示のプロセスを殺す事ができるツールを使用するとか。
 VBAのテスト中は、常にVBA Editorを起動した状態にして置いて、間違って非表示になったままマクロが終了してしまった時になんとかできる状態にして置いた方が、効率が良いと思いますけどね。
    • good
    • 1
この回答へのお礼

何度も有難うございました。
よくわかりました。

お礼日時:2002/11/24 13:58

おはようございます。


>10秒後に自動的に再表示させる方法は・・・・・・
前回、エクセルのVBAでマクロ実行中メッセージを表示させたいのですという質問を立てたかと思いますが、その中のNo5の回答ににヒントが隠されていると思います。

Sub Test()

Dim Tmr As Variant

Application.Visible = False

Tmr = Timer
Do While Timer < Tmr + 10 'Tmr+1の1は秒数です。10にすれば10秒です。

Loop
Application.Visible = True

End Sub

このコードをエクセル2000で実行しましたが、1度画面から消えて、10秒後に自動で表示されました。

お試しになってみて下さい。
    • good
    • 1
この回答へのお礼

いつもご教示いただき有難うございます。
ただ今回の質問は自動で表示する方法ではなく、それ以外の方法という質問だったのです。すみません。

お礼日時:2002/11/23 01:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A