■73228 |
Re[1]: Excelの印刷範囲指定と改ページ |
□投稿者/ 魔界の仮面弁士 -(2014/08/29(Fri) 15:56:11)
| ■No73221 (さとすけ さん) に返信 > // データ設定
セル一つずつに個別に渡すのでは無く、A1:T100 の Range に 2 次元配列を渡して、 まとめてセットした方が良いですよ。
> それを次のように3ページで印刷したいと考えています。
「用紙向きは横」で、「縦3ページ」「横1ページ」に収まるように縮小したいなら、こんな感じ。 最大3ページというだけなので、データ数が少ない場合は1〜2ページで出力されることもあります。
float ver = float.Parse(Regex.Match(ExcelApp.Version, @"(\d+(\.\d+)?)").Value); if (ver < 13) { // PageSetup オブジェクトの動作は遅いので、PAGE.SETUP マクロで一括指定する ExcelApp.ExecuteExcel4Macro(@"PAGE.SETUP(,,,,,,,,,,2,,{1,3})"); } else { // Excel 2010 以降では PrintCommunication プロパティが追加されている ExcelApp.PrintCommunication = false; Excel.PageSetup page = sheet.PageSetup; page.Orientation = Excel.XlPageOrientation.xlLandscape; page.FitToPagesTall = 3; page.FitToPagesWide = 1; ExcelApp.PrintCommunication = true; Marshal.ReleaseComObject(page); }
> range3.PageBreak = (int)Excel.XlPageBreak.xlPageBreakManual;
改ページを挿入する場合は、上記のほか、HPageBreaks.Add を用いる方法もあります。 ただし、参照カウントが増加する場合があるという…。 http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200512/05120042.txt |
|