EXCELの印刷プレビューについて

このQ&Aのポイント
  • VC6でEXCELオートメーションを使用してEXCELシートを操作していますが、複数のシートを持つブックの場合、アクティブなシートしか印刷プレビューできません。
  • ブック全体の印刷プレビューを行いたい場合は、方法がわかりません。
  • PrintOutメソッドも試してみましたが、引数がわかりませんでした。VC6とEXCEL2000を使用しています。
回答を見る
  • ベストアンサー

EXCELの印刷プレビュー

VC6 EXCELオートメーションにてEXCELシートを操作しています。 シートが複数あるブックに対して、印刷プレビューを行うと、アクティブとなっているシートのみしかプレビューできません。 ブック全体のプレビューを行いたいのですが方法がわかりません ----- ソースコード ----- _WorkbookPtr pBook = m_pBooks->Open((_bstr_t)OutFile); m_pExcel->PutVisible( 0, TRUE ); pBook->PrintPreview(); 一応、PrintOutメソッドも使用してみたのですが、引数がわかりませんでした。 開発環境  VC6  EXCEL2000 恐れ入りますが、ご教授のほどお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.4

Cは門外漢なので、マクロの記述で失礼します。 Dim i as Integer For i = 1 to ThisWorkBook.Sheets.Count ThisWorkBook.Sheets(i).Select False Next で、全シートが選択できます。

hiiragi724
質問者

お礼

シートの選択は参考にさせていただきました。 以下のコードにて解決しました。 pBook->Worksheets->Select();  ←この1行を追加 pBook->PrintPreview(); お返事いただいた方どうもありがとうございました。

その他の回答 (3)

回答No.3

ファイル名を指定してみてください。 細かいことは、Yahooの日本のサイトで DirectX VC の順で検索すると同ネタを扱っているサイトがみつかりますよ。

hiiragi724
質問者

お礼

回答どうもありがとうございます。 検索の仕方がよくわからず、目的のとこにたどり着けませんでした。 検索結果のリンク張っていただくと助かります。

  • e10go
  • ベストアンサー率38% (47/122)
回答No.2

No.1のe10goです。 すみません。マクロでなく、VCでしたね。 VCは、私の専門外ですが、下のマクロ(VBA)からVCへのコード変換はできませんか。 無責任な言い方で、すみませんが。

hiiragi724
質問者

お礼

ご回答ありがとうございます。 申し訳ございません、No1の方法は試しました。 EXCELシートをテンプレートにしたいため、マクロは使用できないのです。 マクロのコードをVCに変換できれば良いのですが Sheetをグループ化する部分が今ひとつコードに落とせないのです。 これのコードが変換できればよいのですが

  • e10go
  • ベストアンサー率38% (47/122)
回答No.1

マクロを使わなくてもできますよ。 「Ctrl」キーを押しながらアクティブシート以外のシートタブをクリックすれば、そのシートも選択状態になります。 その方法でブック内のシートを全て選択して、そのまま、印刷プレビューを見れば良いです。 なお、簡単にブック内のシートを全て選択するには、一番左(または右)のシートをアクティブにして、「Shift」キーを押しながら一番右(または左)のシートシートタブをクリックすれば良いです。 なお、これらの作業を「新しいマクロの記録」の後に行えば、マクロができます。 以下がその例です。(Sheet3がアクティブ状態から、全てのシートを選択した) Sub Macro1() ' Macro1 Macro ' マクロ記録日 : 2005/11/24 ユーザー名 : Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet3").Activate ActiveWindow.SelectedSheets.PrintPreview End Sub

関連するQ&A

  • 印刷プレビュー

    excel2010 マクロでバックステージビュー  印刷プレビューと印刷ダイアログ表示を表示させ確認後に印刷を考えています そのバックステージビューの画面で印刷プレビューと印刷ダイアログ表示されますので 『 印刷プレビューの確認 』 『 印刷部数  3』 『 印刷するページの指定 1ページ目から2ページ目 』 の入力がマクロでしてあるのを確認してから印刷ボタンを押すだけにしたいのです printoutメソッドを使いましたが思うようにいかないのでどのようにマクロを組んだらよいのか悩んでいます

  • 引数指定のないメソッドを教えてください。

    DeleteやPrintPreviewのような引数のない メソッドを簡単なものでいいですので、2~3個ぐらい教えてください。 (Excel2003-VBA)

  • EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい

    EXCEL VBAでシートの印刷アプリを作っています。 印刷前にプレビューを見せたいので印刷プレビューダイアログを呼び出していますが、 印刷プレビュー後、実際に印刷に移る前に、ユーザ向けメッセージを出したいのです。 印刷プレビュー画面には「印刷」と「閉じる」ボタンがありますが 「印刷ボタン」を押した場合はVBA側でこう処理、 「閉じるボタン」を押した場合はこう処理 とVBA側で判定することは可能でしょうか。 ご指導お願いします。 参照用コード(思った通りに動作していませんが・・・・) Private Sub Print_Sheet() Dim i As Integer Dim st As Worksheet Set st = Worksheets("印刷シート") i = MsgBox("印刷前にプレビューを表示しますか?", vbYesNo, "シート印刷") If i = 6 Then st.PrintPreview End If i = MsgBox("印刷を開始しますか?" & vbCr & vbLf & "印刷する場合は、プリンターの確認をしてください", _ vbYesNo, "シート印刷") If i <> 6 Then Exit Sub Else st.PrintOut End If Set st = Nothing End Sub 上記のコードだと、印刷プレビューダイアログにおいて、 「閉じる」ボタンを押した場合はそのまま再度MsgBoxで印刷するか否かを聞きに行くので良いのですが 「印刷」ボタンを押した場合は印刷プレビューダイアログから印刷ダイアログが呼ばれそのまま印刷ができてしまいます。 (で、下のフローに流れてPrintOutメソッドで再度印刷してしまう)

  • Excel2007のVBAでPreviewすると

    初めまして。 Excel2007のVBAで困っていることがあり解決方法を探しています。 もともとExcel97で稼働していたマクロ+VBA付きのシートをExcel2007で稼働させようとしています。 マクロ・VBAで作成されたシート(sheet2)をフォームに配置した印刷ボタンをユーザーに押してもらうことでプレビューを表示します。 印刷ボタンを押したときのプレビューのコード Worksheets("sheet2").PrintOut Copies:=1, Preview:=True でプレビュー画面を表示したところ、印刷ボタンや印刷設定ボタン等の上部にあるボタンが薄いグレーの配色で押せなくなりました。 調べた結果、ScreenUpdatingがfalseだと同じ状態になるとわかったので Application.ScreenUpdating = True Worksheets("sheet2").PrintOut Copies:=1, Preview:=True と書き換えましたが、不具合は解消されませんでした。 またブックを閉じずに、マクロを再起動させて同様の動作をおこなうと 何故かちゃんとボタンが押せるプレビューが表示します。 その状態のブックを保存して改めて開くと同じようにプレビューのボタンが押せなくなっています。 同じような現象で解決された方いらしたら解決方法を教えて頂ければありがたいです。 よろしくお願いいたします。

  • エクセルをインターネットエクスプローラで開いた場合のマクロ

    エクセル2000、Windows2000です。 エクセルのBOOKをインターネットエクスプローラ6.0で開いた場合のマクロの動作について教えてください。 Sheets("Sheet1").Select は、「実行時エラー1004 Sheetsメソッドは失敗しました。Globalオブジェクト」 ActiveWindow.SelectedSheets.PrintPreview は、「実行時エラー1004 PrintPreviewメソッドは失敗しました。Sheetsオブジェクト」 などエラーになってしまいます。 自宅のエクセル2003,IE7.0でやってみても同様でした。 どのように対処すればよいのでしょうか? なお、BOOKをIEで開くのは社内のイントラネットに掲載したエクセルをダウンロードするのではなく、イントラ上でIEで開くためのテストです。

  • Excel VBAで印刷ジョブを一つにしたい

    Excel VBAを使用して、シートAの元データの表の一行目から、 決められたセルに5レコードずつ読み込んで表示させる AccessのレポートようなシートBを作りました。 シートAには約500レコードあり、 シートBのページ数は約100ページ分になります。 このシートBの100ページを一度に印刷したく マクロを組み、ページを変えながらPrintOutメソッドで 印刷をしてみましたが、 プリンタのジョブが多くなりすぎて困っています。 Excelのみで、別のブックを使わずに解決する方法を探しています。 何か良い方法はないでしょうか。 よろしくお願いします。

  • Excel VBA 非表示の別ブックへシートコピー

    Excel2010のVBAで、別のExcelブックを非表示で開いて、 シートをコピーすると、 「実行時エラー'1004':WorksheetクラスのCopyメソッドが失敗しました。」 というエラーが出て、正しくシートをコピーすることができません。 (1)のように自分のブックへはシートをコピーすることはできるのですが、 (2)のように別のExcelブック上でシートをコピーする場合と (3)のように別のExcelブック上にシートをコピーする場合の いずれも同様のエラーになります。 どのように記述すれば(2)と(3)でもコピーすることができるのでしょうか。 ------------------------------------------------------------- Sub test()  Dim newEx As Excel.Workbook  Dim newFile As String  newFile = ThisWorkbook.Path & "\New_Book.xlsx"  Set newEx = Workbooks.Open(newFile, UpdateLinks:=0)  Application.Windows("New_Book.xlsx").Visible = False  '(1)New_BookのSheet3を自分のブックにコピーする (正常)  newEx.Worksheets("Sheet3").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)  '(2)New_BookのSheet3をNew_Bookにコピーする (エラー)  newEx.Worksheets("Sheet3").Copy after:=newEx.Sheets(newEx.Sheets.Count)  '(3)自分のブックのSheet3をNew_Bookにコピーする (エラー)  ThisWorkbook.Worksheets("Sheet3").Copy after:=newEx.Sheets(newEx.Sheets.Count)  Application.Windows("New_Book.xlsx").Visible = True  Application.DisplayAlerts = False  newEx.Save  newEx.Close  Application.DisplayAlerts = True  Set newEx = Nothing End Sub -------------------------------------------------------------

  • Excel 特定のシートが印刷出来ない

    Excelのある特定のシートが印刷出来なくなり困っています。 以前までは印刷出来たのですが、1ヶ月程前から出来なくなりました。 正確にいうと、印刷はされるのですが、白紙になってしまいます。 同じBook内の違うシートは印刷できます。 印刷プレビューもちゃんと表示されます。 シートのコピーを作成しても印刷はされません。 シートにプログラムは使用しておりません。 何が原因なのでしょうか。 よろしくお願いします。 仕様:WindowsXP、Excel2003

  • エクセルのマクロをブック全体に

    マクロに関してはずぶの素人です、Q&Aのサイトで目的にかなったものを見つけ 設定したら結果は満足するものでした。 「シートを保護した状態で、グループ化の表示・非表示を切り替えるマクロ」 Sub Auto_Open() With Worksheets("Sheet1") .EnableOutlining = True .Protect UserInterfaceOnly:=True End With End Sub これをブック全体に反映できるマクロを教えて下さい。 ブック内のシート数は多いもので10シートほど、シート名は和英混合です。 ブックの数は40程有り全てのシートにマクロを設定するのは途方もなく 時間が掛かりそうで困っています。 当方のエクセルはExcel2007SP3です、宜しくお願いします。

  • Excelでの印刷時の罫線

    同じ形式(表など同じで内容だけ違う)のブックが3つあって、1つだけ罫線がまったく印刷されません。プレビューにも表示されません。ページ設定のシートタブにあるチェックボックスにはチェックが入っています。新しくシートを挿入したやつには罫線が表示されます。問題のシートだけが罫線が表示されません。これはどういうった現象になっているのでしょうか?よろしくお願いします。 OS:win98 Excel2000です

専門家に質問してみよう