- 締切済み
エクセルのマクロ
マクロを利用して、印刷プレビュー画面を閉じるには、どうしたらいいでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- KenKen_SP
- ベストアンサー率62% (785/1258)
回答としては、既に出てますがマクロでは無理です。どうしてもコードで 閉じたいなら、別プロセスから閉じるしかありません。 んー、Excel ではない外部プログラムを用意して閉じる、ということです。 Windows でグラフィカルなインターフェース(GUI) をもつアプリケーション は、ほぼイベントドリブン(※)方式を採用してます。 【イベントドリブン】IT用語辞典e-Word 引用 ユーザや他のプログラムが実行した操作(イベント)に対応して処理を 行なう、プログラムの実行形式。 ユーザが操作を行っていないときはプログラムは何もせず待機して いるため、ユーザはそのプログラムを待たせた状態で他の操作を行なう ことができる。 Excel もイベントドリブン方式です。この方式により、マルチタスクな 操作が可能になっています。 したがって、手動であれ、マクロで印刷プレビューを開いた場合であれ、 Excel は、ユーザーから何らかのアクション(閉じるボタンクリックなど) を受け付けるまで待機状態にあります。当然、Excel が実行するマクロも 待機状態にあるということです。 試しに、次のコードを実行してみて下さい。 Sub Sample() Application.OnTime Now() + TimeSerial(0, 0, 5), "TEST" ActiveSheet.PrintPreview End Sub Sub TEST() MsgBox "Call" End Sub プロシージャSample を実行すると、5秒後にプロシージャ TEST を実行する ように予約を入れてから、プレビューウインドウを表示させてます。 結果としては、ユーザーがプレビューウインドウを閉じるまで、何秒経過 したとしても TEST の実行も待機されてます。
- onlyrom
- ベストアンサー率59% (228/384)
#1さんの回答にもありますように無理です。 なぜマクロでプレビューを閉じたいと思われたのでしょうか。 プレビュー画面には、閉じるボタンもありますし、 キーボードからも閉じられるようになっていますよね。 そもそもどういった場合を想定していらっしゃるのか興味がありますので 後学のためにお聞かせ願えればと思います。
- merlionXX
- ベストアンサー率48% (1930/4007)
No2です。 今、ためして見ました。(エクセル2000) Sub preview_test() For i = 1 To 5 Range("E4") = i * 100 SendKeys "%c" ActiveSheet.PrintPreview Next End Sub これで作動しました。
お礼
ありがとうございます。何とか、使えそうです!
- merlionXX
- ベストアンサー率48% (1930/4007)
SendKeys "%C" ではどうでしょうか?
- crossgate
- ベストアンサー率65% (78/119)
印刷プレビューを表示している間はマクロの処理が中断するから、ムリなのでは? 何をトリガに閉じるんですか? もしキー入力なら、Cキーとか、Escキーとかじゃダメなのかな?
お礼
回答、ありがとうございます!実は、エクセルを使って、定型の用紙に印刷出来るようなbookを作ったのですが、印刷プレビューでは枠線を確認したいのですが、印刷時には枠線が必要ないので、簡易印刷の設定をしたかったのです。使う人が、詳しい人ばかりでないので、取り敢えず、マクロを使用して簡単に作業が出来るようにしたかったのです。
お礼
回答、ありがとうございます!実は、エクセルを使って、定型の用紙に印刷出来るようなbookを作ったのですが、印刷プレビューでは枠線を確認したいのですが、印刷時には枠線が必要ないので、簡易印刷の設定をしたかったのです。使う人が、詳しい人ばかりでないので、取り敢えず、マクロを使用して簡単に作業が出来るようにしたかったのです。