
VBAマクロでパソコン画面からエクセルを非表示にする場合、
Sub TEST1()
Application.visible = False
End Sub
で画面からエクセルが消えると思いますが、消えたエクセルはどうなってしまうのでしょうか?
何もしなければいつまでもそのままなのでしょうか?
電源を切ればでてくるのでしょうか?
Application.visible = Trueで表示されるのはわかりますが、消えたエクセルにどうやってそのマクロを作動させたら良いのでしょうか?
10秒後に自動的に再表示させる方法はマクロに最初から
Application.OnTime Now + TimeValue("00:00:10) などで自動実行させればよいのでしょうが、そうでない場合の再表示方法を教えてください。
No.1ベストアンサー
- 回答日時:
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 …
ご回答ありがとうございます。
>9x系のタスクマネージャはウインドウが無いアプリケーションは表示されない(非表示状態のExcelは、ウインドウが存在しない)ので、Systemを再起動するのが一番簡単かも。
すみません、Systemの再起動とはパソコンの再起動と同じことなのでしょうか?
それなら簡単に再起動して非表示になったエクセルを終了させられますね?
教えて下さいますようお願いします。
No.3
- 回答日時:
>すみません、Systemの再起動とはパソコンの再起動と同じことなのでしょうか?
>それなら簡単に再起動して非表示になったエクセルを終了させられますね?
その通りです。
Windowsを終了する時は、ウインドウがあろうが無かろうが、全ての動作中プロセスを終了しますから、Windowsを終了/再起動すれば、非表示になっているExcelも自動的に終了します。
ただ、プログラム(マクロも含めて)のテスト中に、何度も何度も再起動していたのでは、能率が悪いですからね。
先の回答にURLを書いたフリーソフトウエアのProcess++のような、非表示のプロセスを殺す事ができるツールを使用するとか。
VBAのテスト中は、常にVBA Editorを起動した状態にして置いて、間違って非表示になったままマクロが終了してしまった時になんとかできる状態にして置いた方が、効率が良いと思いますけどね。
No.2
- 回答日時:
おはようございます。
>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秒後に自動で表示されました。
お試しになってみて下さい。
いつもご教示いただき有難うございます。
ただ今回の質問は自動で表示する方法ではなく、それ以外の方法という質問だったのです。すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBA Application visibleのやり方
Visual Basic(VBA)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
6
Excel VBAでユーザーフォームだけ表示したい
Visual Basic(VBA)
-
7
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
(Excel+VBA)ユーザーフォームのみ表示で完結させたい。
Excel(エクセル)
-
10
VBA、UserFormを前面に出力してから処理後にももう一度前面に出したい
Visual Basic(VBA)
-
11
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
12
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
13
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
14
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
15
vbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう
その他(プログラミング・Web制作)
-
16
ExcelVBAでフォーム内でブックを開くとフォームが隠れてしまう
Visual Basic(VBA)
-
17
UserForm
Visual Basic(VBA)
-
18
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
19
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
20
Excel VBAで、実行時にsheet上のコマンドボタンのCaptionを変更する。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
非表示になったエクセルは?
-
C#でのbatファイル実行結果取得
-
共有メモリ方式とメッセージパ...
-
c言語でプロセスIDを調べたい
-
他のEXEが起動しているかの確認
-
ShellExecuteが起動したプロセ...
-
警告『 別のプロセスで使用され...
-
プロセスのアタッチ・デタッチ...
-
vb.netでEXCEL起動がうまくでき...
-
【C#】別プロセスがロックか...
-
他のアプリケーションをクリッ...
-
インスタンスハンドルは何の役...
-
プロセス終了の検知について
-
WMIでのプロセスの起動・終了監...
-
WindowsAPIのCreateFile関数ま...
-
バッチファイルでPINGログ取得
-
Windowsでのfork方法
-
ADOでアクセスのレコードに...
-
VB6.0 SHELLで起動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
C#でのbatファイル実行結果取得
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
怪しいプロセス教えてください。
-
sleep関数の精度について
-
【C#】別プロセスがロックか...
-
Process.Startの戻り値を後で取得
-
IISがフリーズ
-
プロセスIDからウィンドウハ...
-
Linuxでのスレッド間メッセージ...
-
Windowsでのfork方法
-
SendMessageが失敗するときがある
-
警告『 別のプロセスで使用され...
-
WSH.Runで待機できません
-
VB.NETで起動したExcelの閉じ方...
おすすめ情報