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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
VBA Application visibleのやり方
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
5
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
6
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
UserForm1.Showでエラーになります。
工学
-
10
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
11
Excel VBAでユーザーフォームだけ表示したい
Visual Basic(VBA)
-
12
フレーム内に移動したい
Visual Basic(VBA)
-
13
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
14
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
15
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
16
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
17
Excel VBAからAccessマクロを実行したい
Visual Basic(VBA)
-
18
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
19
Form間の値の渡し方
Visual Basic(VBA)
-
20
VBでExcelが起動されているか知りたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
Visual C++からpingを実行して...
-
explorer.exeが異様にメモリを食う
-
ウィンドウのタイトルからプロ...
-
API関数 GetExitCodeProcess
-
プロセスIDからウィンドウハ...
-
WINのタスクマネージャの強制終了
-
タスクマネージャーのプロセス...
-
Linuxでのスレッド間メッセージ...
-
EXE間でデータを受け渡し時のka...
-
C++のプログラムをバックグラウ...
-
完全な乱数を生成する方法
-
WebBrowserでPDF表示でのトラブル
-
VB.NET 自プログラムのプロセス...
-
Windowsでのfork方法
-
ADOでアクセスのレコードに...
-
sleep関数の精度について
-
別のプロセスの関数を呼び出す...
-
VBでエクセルを起動し、プロ...
-
C#でのbatファイル実行結果取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
なぜ女性は男性が忘れたことを...
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
C#でのbatファイル実行結果取得
-
プロセスIDからウィンドウハ...
-
c言語でプロセスIDを調べたい
-
Linuxでのスレッド間メッセージ...
-
プロセスIDの取得方法について
-
ADOでアクセスのレコードに...
-
怪しいプロセス教えてください。
-
vb.netでEXCEL起動がうまくでき...
-
別のプロセスの関数を呼び出す...
-
C++のプログラムをバックグラウ...
-
Visual C++からpingを実行して...
-
VBS(WSH)で開いたIEのウィンド...
-
IISがフリーズ
おすすめ情報