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 Application visibleのやり方
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
8
フレーム内に移動したい
Visual Basic(VBA)
-
9
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
10
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
11
Listviewのデータを上から順番に取得 VBA
Visual Basic(VBA)
-
12
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
13
VBでExcelが起動されているか知りたい
Visual Basic(VBA)
-
14
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
15
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
16
エクセルの起動時のロゴの非表示は?
その他(Microsoft Office)
-
17
Excel VBAでユーザーフォームだけ表示したい
Visual Basic(VBA)
-
18
VBAでcallで呼び出したsubを終了させる
Visual Basic(VBA)
-
19
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
20
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
VB6.0 SHELLで起動...
-
explorer.exeが異様にメモリを食う
-
vb.netでEXCEL起動がうまくでき...
-
[C#]リモートコンピューターを...
-
C++のプログラムをバックグラウ...
-
Process.Startの戻り値を後で取得
-
他のコンピュータのプロセスを取得
-
ADOでアクセスのレコードに...
-
VB.NET 自プログラムのプロセス...
-
VC++6.0 「プロセスへ...
-
非表示になったエクセルは?
-
POSIX メッセージキュー作成時...
-
デバックにプロセスをアタッチ...
-
プロセスが実行中かどうか調べ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
VB6.0 SHELLで起動...
-
ADOでアクセスのレコードに...
-
Windowsでのfork方法
-
非表示になったエクセルは?
-
共有メモリの同時アクセスにつ...
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
C++のプログラムをバックグラウ...
-
C++でシェルを起動
-
Linuxでのスレッド間メッセージ...
-
OSPFでプロセスを分ける意義に...
-
怪しいプロセス教えてください。
-
Process.Startの戻り値を後で取得
-
SendMessageが失敗するときがある
-
ウィンドウのタイトルからプロ...
おすすめ情報