• 締切済み

VB.NETでのExcelの印刷について

環境:XP-Pro  VisualStudio.NET2003 VB.NET VBAについて。 【1】VB.NETを使ってExcelを表示しないで印刷を行います。 その時に印刷用紙を横にしたいのですが、方法がわかりません。 Excel.Worksheet.Range("A1:N9").Orientation = 例:xlLandscapeなどで 試したのですが、うまくできませんでした。 どなたかご存知でしたら教えて頂けませんか? 【2】それと印刷時にExcelを表示させずに、プレビューを出したいのですが、 PrintPreview()をプログラムに追加したらプレビューが表示されずに 固まってしまいます。 引数などが必要ですか?

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 Excelを表示させない、っていうのは単に、ブックの Visible =True を しないだけの話ですよね? .Net は良くわかりませんが、 xlSheet.PrintOut を、単に  xlSheet.PrintOut Preview:=True 'にするか、  xlSheet.PrintPreview に置き換えれば問題はないのではありませんか?そのPrintOut と、PrintPreview 併記というのは、ありえないと思います。単に、Preview 画面を出すなら、そこで、ユーザー選択で「印刷」するかしないか、だけになるのだと思います。 結局、Preview は、ある意味ダイアログモードになってしまうからだと思います。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

【1】印刷する前にセットしてはどうでしょうか?   Dim xlSheet As Excel.Worksheet   Set xlSheet = xlBook.Worksheets.Add   (途中省略)  (印刷の前に)   With xlSheet.PageSetup     .Orientation = xlLandscape   End With   xlSheet.PrintOut   xlApp.Quit   Set xlSheet = Nothing 【2】下記を追加してどうでしょう?  xlSheet.PrintPreview  '印刷プレビューを表示

you314
質問者

お礼

早速の回答ありがとうございます。 【1】は大成功でした。非常に助かります。 【2】は、使用しているんですが固まってしまうんです。

you314
質問者

補足

解説のあるHP等、ご存知でしたら教えて頂けないでしょうか。 よろしくお願いします。

関連するQ&A

  • Excelのマクロで印刷設定をすると遅くなる

    Excelのマクロについて 久しぶりに質問させていただきます。 マクロで印刷の設定をすると 遅くなるのでしょうか? Range("A1:Z10").Select With ActiveSheet.PageSetup  .Orientation = xlLandscape  .Zoom = False  .FitToPagesWide = 1  .FitToPagesTall = 1  .TopMargin = Application.CentimetersToPoints(1)  .BottomMargin = Application.CentimetersToPoints(1)  .LeftMargin = Application.CentimetersToPoints(1)  .RightMargin = Application.CentimetersToPoints(1) End With Selection.PrintPreview というようなマクロを作って実行すると プレビュー画面が出るまでに かなり時間がかかるのです。 職場のパソコンであるため パソコンそのものがかなり古いのですが マクロを使わずに直接、印刷の設定をすれば すぐにプレビューが表示されます。 ただ、同じシートをいろいろな方法で印刷する必要があるため マクロを組んでみたわけです。 ちょっと我慢すればいいだけで 仕事そのものに大きく影響するわけではありませんが 皆様のご助言をよろしくお願いいたします。

  • ブラウザ上でEXCELの印刷プレビューをする方法は?

    通常、エクセルで「印刷プレビュー」をする場合、ツールバーの「印刷プレビュー」を選択するか、VBAマクロで"ActiveSheet.PrintPreview"を組み込んでも行うことができますが、ブラウザ上で開いたエクセルの印刷プレビューを行う方法を教えて下さい。

  • 複数ブックの印刷プレビューの方法を教えてください。

    VB6.0にてエクセルのブックを2つ作成し、 最後にそのBook1とBook2を同時に印刷プレビューで表示させたいのですが Book1.Worksheets.PrintPreview Book2.Worksheets.PrintPreview にするとBook1の印刷プレビューを閉じないと Book2の印刷プレビューが表示されません。 Book1とBook2を同時にプレビュー表示させる方法を どなたかご存知でしたら教えてください。 よろしくお願いします。

  • マクロで呼び出したプレビュー画面から印刷できない

    マクロで呼び出したプレビュー画面から印刷できない エクセル2010です。 下記のマクロで呼び出したプレビュー画面から印刷できません。 Sub test()   ActiveSheet.PrintPreview End Sub で呼び出したプレビュー画面から、印刷するために一番左上の「印刷」をクリックすると 実行時エラー1004 WorksheetクラスのPrintPreviewメソッドが失敗しました。 となってしまいます。 何がわるいのでしょうか?別のパソコンのエクセル2016では問題なく印刷できます。 頭をかかえています。

  • VB.NETからVBAマクロ(引数)を呼び出す方法

      VB.NETから参照型引数付きのFunctionのVBAマクロを呼び出す方法 Excel2003のVBEの標準モジュールModule1にあるFunctionのマクロtest(引数)をVB.NETから呼び出して、引数に設定した値をVBA側で加工して、加工された値をVB.NETで取り出したいのですが、VB.NET側でどのように記述してよいのかがよく分かりません。 具体的には、以下のVBAをVB.NETから呼び出すにはどのように記述すればよいのでしょうか。できましたらそのままVB.NETのConsoleApplicationのModule1のSub Main()の中にコピーペーストして動くコードと参照設定を教えていただけると助かります。 ---Excel2003のVBA(C:\test\Book1.xls)---------- Function test(ByRef data As Long) As Long  If data = 0 Then   test = 0   data = 0  Else   test = 1   data = 100 / data  End If End Function ---------------------------------------------- よろしくお願いします(WindowsXP,VisualStudio2010,Excel2003VBE)  

  • VB6.0からエクセルを起動

    現在VBとVBAの勉強をしているのですが、VB6.0からエクセルを起動する際に、エクセルにはVB6.0から引数を渡したいのですがどうすれば良いでしょうか? どなたか、ご存じの方が居ましたら教えてください。

  • 2ページ目以降の行タイトルを3行目にしたいのですが

    1ページ目は普通に印刷して、2ページ目以降の行タイトルを3行目にもって行きたいのですが、どの様にしたらいいか教えて下さい。 宜しくお願いします。 With Worksheets("Sheet1") .PageSetup.PrintTileRows = "$A3:$P3" .PageSetup.Orientation = xlLandscape .PageSetup.PrintArea = Range("A1",Range("P65536").End(xlUp)).Address .PrintPreview End With

  • エクセルのマクロで印刷プレビューを閉じる方法

    印刷プレビューをだすなら PrintPreviewでわかるのですが、表示されたプレビュー画面を、自分で「閉じる」または「印刷」ボタンを押さなくとも閉じるにはどう書けばいいのでしょうか?

  • VB.net(2003)でのexcel操作

    現在vb.netを使用してのExcelそうさプログラミングを作っており、excel sheetへの文字入力はできるようになりました。そこで質問なのですが、excelシートの特定のセルの値が5だった場合にその隣のセルのあたいを10にするというプログラムを作りたいのですが、VBAではとても簡単なのですが、vb.netを使用してどのようにやればよいかがわからないのでご教示いただきたいです。activecell.offset(0,1)やcells.findのような、VBAをVB.netから使用する方法はあるのでしょうか?

  • ASP.NET(VB) + JavaScriptで印刷プレビュー

    ASP.NET(VB) + JavaScriptで印刷プレビュー お世話になります。 下記のソースを参考に、Webページ(.aspx)の印刷プレビューを表示したいと思っております。 ---------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>印刷プレビュー</title> <script> function PrintPreview() { if(window.ActiveXObject == null || document.body.insertAdjacentHTML == null) return; var sWebBrowserCode = '<object width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>'; document.body.insertAdjacentHTML('beforeEnd', sWebBrowserCode); var objWebBrowser = document.body.lastChild; if(objWebBrowser == null) return; objWebBrowser.ExecWB(7, 1); document.body.removeChild(objWebBrowser); } </script> </head> <body> <form name="form"> <input type="button" value="PrintPreview" onclick="PrintPreview();"> </form> </body> </html> ---------------------------------------------------------------------- このJavaScriptを組み込んで実行すると、objWebBrowser.ExecWB(7, 1);のところで エラーとなってしまいます。 ExecWBを使うためには参照設定が必要なのでしょうか? 初めての開発で、基礎的なことがわかっておらず、大変戸惑っております。 また、他に方法がありましたら教えていただきたいです。

専門家に質問してみよう