- ベストアンサー
エクセルVBAで、非表示にしたエクセルが印刷後に表示されてしまう
Excel97を使用しています。 ブックを開いた時に、Application.Visible = Falseでエクセルを非表示にしてから、ユーザーフォームだけ表示させる設定にしています。 このユーザーフォーム上のボタンで印刷をするのですが、印刷が終了すると、ユーザーフォームの後ろにブックが表示されてしまいます(タイトルバーだけの時もあります)。 しかもユーザーフォームがまだ表示されているのに、エクセルの「閉じる」ボタンが有効になってしまいます。 印刷のコードの前や後ろにもApplication.Visible = Falseを書いてみたのですがうまくいきません。 ブックを常に非表示にしておくにはどうしたらよろしいでしょうか? ご存知の方、どうぞよろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
表示領域をデスクトップの範囲外に移動するという方法はいかがですか? やったことはないので自信なしです。 頑張ってくださいヽ(^。^)ノ
その他の回答 (1)
- taocat
- ベストアンサー率61% (191/310)
質問のコードでOKだと思うのですが、97がないので何とも言えませぬ。 で、一案。 エクセルウィンドウとUserformのサイズを同じにしたらどうでしょうか。 そうすれば質問のような現象が発生してもOKですよね。 それから、Userformはモーダルですよね。
お礼
ご回答どうもありがとうございます。 #1さんの方法でうまくいきました。 ユーザーフォームと同じ大きさに…これも思いつきませんでした…。また次の機会に使わせていただきますね。 > Userformはモーダルですよね。 モーダルなのですが、97だと組み込みダイアログを表示させた後はモードレスになってしまう、というバグがあるそうです。 その部分はこれで解決できました。 「バグでモードレスになるのを防止」 http://homepage2.nifty.com/kmado/kvba.htm またわからないことがありましたらよろしくお願いします。
お礼
ご回答どうもありがとうございます。 デスクトップの範囲外に移動とは考え付きませんでした(゜o゜) やってみましたらうまく行きました! また、ここで「バグでモードレスになるのを防止」という項目がありましたのでこれも使ってみました。 http://homepage2.nifty.com/kmado/kvba.htm またわからないことがありましたらよろしくお願いします。