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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBA Application visibleのやり方
Visual Basic(VBA)
-
-
4
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
7
エクセルで別ブックをバックグラウンドでオープンする方法
Excel(エクセル)
-
8
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
9
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
10
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
13
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
14
エクセルのチェックボックスを保護対象から外すには
Windows Vista・XP
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
17
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
18
エクセル・マクロ シートの非表示でマクロのエラー
Visual Basic(VBA)
-
19
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
20
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C++でシェルを起動
-
プロセスIDの取得方法について
-
VB.NET 自プログラムのプロセス...
-
C#でのbatファイル実行結果取得
-
Visual C++からpingを実行して...
-
共有メモリの同時アクセスにつ...
-
プロセスハンドル or ウインド...
-
起動しているプロセスの確認
-
Linuxでのスレッド間メッセージ...
-
プロセスのアタッチ・デタッチ...
-
起動中の他のプログラム(orプ...
-
SendMessageが失敗するときがある
-
パソコンが急におもくなりまし...
-
ソケットを使った通信
-
タスクマネージャーのプロセス...
-
プロセス終了の検知について
-
セマフォとmutexの違いは?
-
Windowsでのfork方法
-
共有メモリの使い方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
タスクマネージャーのプロセス...
-
explorer.exeが異様にメモリを食う
-
プロセスのアタッチ・デタッチ...
-
C#でのbatファイル実行結果取得
-
プロセスIDからウィンドウハ...
-
VB6.0 SHELLで起動...
-
非表示になったエクセルは?
-
SendMessageが失敗するときがある
-
ADOでアクセスのレコードに...
-
c言語でプロセスIDを調べたい
-
Process.Startの戻り値を後で取得
-
OSPFでプロセスを分ける意義に...
-
セマフォとmutexの違いは?
-
Visual C++からpingを実行して...
-
プロセスIDの取得方法について
-
Linuxでのスレッド間メッセージ...
-
怪しいプロセス教えてください。
-
ウィンドウのタイトルからプロ...
-
別のプロセスの関数を呼び出す...
おすすめ情報