16:05こんにちは。割り込み失礼しました。Excel2002SP3という条件なら、>ユーザーフォームがプレビュー画面の前面に表示されてしまい、プレビュー画面、ユーザーフォーム画面のどちらのボタンも効かなくなって制御不能となってしまいます。しなくてもよいと思います。邪魔というなら、以下のようなコードにすればよいと思います。.Show(False)」には変わりありません。通報するこの回答へのお礼コードまで書いていただき、ほんとうにありがとうございます。そのまま使わせていただきました。結果、かなり理想に近い動作に仕上がり、あと一息で完成となりそうです。ありがとうございました。15:23何はともあれ、実際のコードをアップしてみてください。Subこの回答への補足ありがとうございます。最初は下記のようにコードを記述していました。Sub質問した後、ANo1様のアドバイスをもとに、以下のようにコードを変更しました。UserForm1は印刷する、しないにかかわらず必ず表示させておきたいのです。Sub上記のように変更し、一見うまくいったように見えましたが、UserForm1をいったんHideした後にまたShowするため、※1が実行され、その後は新しくUserForm1が立ち上がったのと同じ動作をします。このUserForm1が閉じられた後、※2を実行してしまうため、エラーになってしまいうまくいきません。UserForm1を表示させたままでxlDialogPrintが使えれば良いのですが...。Ifとすれば、印刷OKのボタンを押したときにユーザーフォームが現れると思います。この回答への補足ご教示ありがとうございます。変数が定義されていません。通報するこの回答へのお礼ダイアログの結果を受け取る方法はわかりました。ありがとうございました。Basic(VBA)「プリンタの設定」ダイアログボックスのプリンタを指定したい。Basic(VBA)11印刷をキャンセルExcel(エクセル)12エクセルの印刷ダイアログをSendkeysで操作したい。Basic(VBA)18VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。Basic(VBA)「プリンタの設定」ダイアログボックスのプリンタを指定したい。Basic(VBA)11印刷をキャンセルExcel(エクセル)12エクセルの印刷ダイアログをSendkeysで操作したい。Basic(VBA)18VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。回答数ランキングです。職業恋愛アドバイザー・婚活アドバイザーこの専門家の回答をチェック他の専門家の回答をチェックこのQ&Aを見た人が検索しているワードプレビューVBA印刷Excel引数このQ&Aと関連する良く見られている質問Qエクセルマクロ印刷時にプリンタを指定できますか?エクセル2002を使用しています。VBAはまったくわかりません。マクロの自動登録で印刷を記録すると、通常使うプリンタから出力されるようですが、LANでプリンタ複数使用可能な環境ですので、いちいち通常使うプリンタを変更するのではなく、マクロ実行時にプリンタを選択したく思います。因みに、以下のマクロはSheet1に値を入力し、Sheet1の値をコピーしたSheet2を印刷するというマクロです。このマクロのどの部分にコードを付け加えればプリンタをこのマクロ実行時に選択可能でしょうか?もしくはマクロではプリンタを選択できないのでしょうか?どうぞよろしくお願いいたします。Sub*******************************************************************エクセル2002を使用しています。VBAはまったくわかりません。マクロの自動登録で印刷を記録すると、通常使うプリンタから出力されるようですが、LANでプリンタ複数使用可能な環境ですので、いちいち通常使うプリンタを変更するのではなく、マクロ実行時にプリンタを選択したく思います。因みに、以下のマクロはSheet1に値を入力し、Sheet1の値をコピーしたSheet2を印刷するというマクロです。このマクロのどの部分にコードを付け加えればプリンタをこのマクロ実行時に選択可能でしょうか?...続きを読むAベストアンサー#4です。WinAPIを使ってプリンタ一覧を取得。VBAでActivePrinterを取得。ActivePrinterを元に戻す。ことをやるには相当の技術力が必要になります。ここはひとつ、Application.Dialogs(xlDialogPrint).Showこうして印刷ダイアログを表示するだけにとどめておいてはどうでしょうか。あとはユーザーが好きなプリンタを選択して[OK]を押せば印刷されます。Ne02はLANにより異なります。他の回答も見るQApplication.Dialogs(xlDialogSaveAs)でキャンセルの取得エクセル2000です。Sheet1を複製し名前をつけて保存するマクロを書きました。以下のとおりですが、キャンセルされた場合でも「保存しました」のメッセージが出てしまいます。Subエクセル2000です。Sheet1を複製し名前をつけて保存するマクロを書きました。以下のとおりですが、キャンセルされた場合でも「保存しました」のメッセージが出てしまいます。False...続きを読むAベストアンサーMsgboxを使ったりしてApplication.Dialogs(xlDialogSaveAs).Showの戻り値を確認してみればわかるが,OKを押した時はTrueでCancelを押した時はFalseだ。#MSDNのどのページに載っているかよくわからんかった。印刷プレビューをだすならPrintPreviewでわかるのですが、表示されたプレビュー画面を、自分で「閉じる」または「印刷」ボタンを押さなくとも閉じるにはどう書けばいいのでしょうか?Aベストアンサーこんにちは。興味があったんで追試してみました。下記の順に並べ変えると動きます。発行後は、プリントプレビューを閉じるまで、マクロが停止すると思われます。↑で動くのは、キーを先送りし、開いたと同時に閉じるので、マクロが止らずに進んでいるだけで、動作としては不安定(端末によってはうまくいかない。実際↑を走らすと、アクティブセルに不明な空白が入力され、入力待ち状態でマクロが終了します。なにかしらの事情があってのご質問とは思いますが、やはりプリントプレビューはユーザに閉じて頂くのが本筋ではないでしょうか。VBA】プリンタのプロパティダイアログの表示Excel2003を使用しています。あるシートのページ設定等をマクロの記録をとって、コードを書きました。ページ設定が済んだら、プリンタのプロパティダイアログを表示させたいのですが、ここまでをマクロで処理することは可能でしょうか?このシートを印刷するときは、A3用紙(横)1枚にA4(縦)で作成されているデータを2ページ印刷(2ページを1ページに集約印刷)したいので、ページ設定が済んだら、プリンタのオプション設定を忘れないよう、プリンタのプロパティダイアログが自動で表示されるようにできないかと思い、質問させていただきました。私個人が印刷する際は、ここまで必要ないのですが、会社の年配の方が上記の設定で印刷するのに、わからない(覚えきれない)というので、何か良い方法はないかと考えているところでして...(^_^;)この点に関しても、アドバイスをいただけると嬉しいです。SendKeysステートメントというのがあります。Sub...こんなコードで良いかもしれません。他の回答も見るQエクセルVBAで手差しトレイを指定させたい。エクセル2010です。端折ってますが、以下のようなコードでDATAシートのデータをInput用シートに転記し、それを参照しているPrint用シートを連続して印刷したいのです。その歳、印字する用紙はA4等の定形サイズではない特殊な台紙なので、プリンターで「手差し」トレイに入れます。自分の端末だとプリンターは決まっているので指定できると思うのですが、このエクセルを使う人が特定できず、どのようなプリンターなのかわかりません。(少なくとも手差しトレイはあります)そのためPrint実行前にユーザーにトレイを選択してもらうにはどのようなコードを書き加えればよいでしょうか?ご教示いただければ幸いです。Subエクセル2010です。端折ってますが、以下のようなコードでDATAシートのデータをInput用シートに転記し、それを参照しているPrint用シートを連続して印刷したいのです。その歳、印字する用紙はA4等の定形サイズではない特殊な台紙なので、プリンターで「手差し」トレイに入れます。自分の端末だとプリンターは決まっているので指定できると思うのですが、このエクセルを使う人が特定できず、どのようなプリンターなのかわかりません。(少なくとも手差しトレイはあります)そのためPrint実行前にユーザー...続きを読むAベストアンサーこんにちは。「プリンターの設定」ダイアログを使うのはどうでしょうか?Application.Dialogs(xlDialogPrinterSetup).Showこれで使えます。VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。常にファイル名を取得出来るVBAをどなたか、教えて下さい。操作対象になっているブックの名前はActiveWorkbook.Nameですね。>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになりというような文脈からすると、ThisWorkbook.Nameの方ですかね。印刷後の判定いつもお世話になっています。不明な点が出てきたので質問させていただきます。処理順として1.AccessからExcelを出力し、出力後はそのまま表示しておく。2.表示してあるExcelをユーザーが印刷する。3.印刷したシートの見出しの色を変更する。印刷が実行されたかどうかの判別方法がわからないのです。印刷プレビューでもイベントが走ってしまい、ダメでした。印刷実行なのか、プレビューなのか区別が出来る方法があればとも思っているのですが...。ご存知の方、ご教授お願いいたします。Aベストアンサーこんにちは。印刷したものと、プレビューしたもののイベントの区別をしたいということですね。いくつか方法を考えてみましたが、実際に印刷したかどうかは、API関数でしか把握できませんが、かなり大掛かりで、リスクを背負うことになってしまいます。私としては、あまりお勧めできません。私が、実際の開発で、Excelの中だけでどう考えるかというと、あまり良い案は浮かびません。ならない限りは、印刷もプレビューもされませんので、後は、開発側の設けたボタンで、印刷が把握できます。そのボタンを押した時のみ、有効になるわけです。ユーザー側に余計なことをしてもらいたくない場合は、メニューバーやツールバーも隠します。自分が望むボタンだけを置くことにします。イベントが利きません。印刷プレビューのイベントで、例えば、PDF出力などのダミーのプリンタ・ドライバに切り替えるぐらいしか、今のところ思いつきません。API関数での制御になってしまいます。違いというは、Excel上ではないかもしれません。ちなみに、印刷プレビューのイベントというのは、以下のようなものです。すればよいと思います。印刷したものと、プレビューしたもののイベントの区別をしたいということですね。いくつか方法を考えてみましたが、実際に印刷したかどうかは、API関数でしか把握できませんが、かなり大掛かりで、リスクを背負うことになってしまいます。私としては、あまりお勧めできません。私が、実際の開発で、Excelの中だけでどう考えるかというと、あまり良い案は浮かびません。Ne**:"Ne**の部分がパソコンを再起動すると変更されてしまうようでうまくいきません。Ne**:の記述なしでプリンタを指定する方法はないでしょうか?Aベストアンサーこんにちは。印刷時に指定するようにしてはどうでしょうか。実行時エラー'1004’WorksheetクラスのCopyメソッドが失敗しました。表示されることがあります。該当のFor~Next文は10回以上実行されているので、コードの誤りではないと思うのですが、なぜ「Copyメソッドが失敗」するのかわかりません。理由/対処方法がわかればありがたいと思い質問させていただきます。実行時エラー'1004’WorksheetクラスのCopyメソッドが失敗しました。表示されることがあります。該当のFor~Next文は10回以上実行されているので、コードの誤りではないと思うのですが、なぜ「Copyメソッドが失敗」するのかわかりません。理由/対処方法がわかればありがたいと思い質問させていただきます。Inc.Q質問する(無料)Q&A検索goo検索gooIDで新規登録・ログイン新規登録する(無料)会員の方はこちら外部サービスのアカウントで新規登録・ログインYahoo!で新規登録・ログインGoogleで新規登録・ログインTwitterで新規登録・ログインFacebookで新規登録・ログインdアカウントで新規登録・ログイン※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。会員でない方、会員になるとあなたも質問や回答ができるようになります!!親切・丁寧な回答が集まる場30分以内に回答がもらえ回答数は平均3件!匿名(ニックネーム)での投稿なので。