2009年6月20日土曜日

第121回目 印刷属性のコピー

○第121回目 印刷属性のコピー

 印刷属性のコピーです。
 具体的には、
 用紙の大きさ、向き
 拡大縮小
 各マージン
 ヘッダーとフッタ
 列及び行見出し
 印刷範囲
 など
 を、ほとんどそっくりそのまま、他のシートにコピーしようというものです。
 (まずは、一つのシートのみにコピーすることからはじめましょう。次に適用するシートの範囲を指定できることを考えましょう。実は番号の指定機能は既に図形作成システムでできあがっています。そこでは、"1.5-8.12.20-23"という与え方が可能です。これを借用しましょう)

 印刷書式の設定をマクロの記録で取ってみますと、
 おおむね次のとおりとなります(一部分)。
    With ActiveSheet.PageSetup
        .RightHeader = "&D;&T"
        .RightFooter = "&9&Z&F&A"
        .LeftMargin = Application.InchesToPoints(0.984251968503937)
        .BottomMargin = Application.InchesToPoints(0.62992125984252)
'        .Orientation = xlLandscape
'        .PaperSize = xlPaperA4
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
 これは印刷属性の設定です。
 そして、この右辺側は変数でも可能です。
 次に、もとのシートから印刷属性を取得です。
 印刷属性の取得はどうなるでしょうか。
    With ActiveSheet.PageSetup
        mi_r = .PrintTitleRows
    End With
 つまりイコールの左右を逆にすればいいことになります。
 とても簡単です。
 このように取得した印刷属性を、コピー先のシートに行き、設定してあげればよいことになります。
 この中から必要なものを選んでやってみてください。
    With ActiveSheet.PageSetup
        .PrintTitleRows = mi_r
        .PrintTitleColumns = mi_c
        .PageSetup.PrintArea = p_a
        .LeftHeader = h_l
        .CenterHeader = h_c
        .RightHeader = h_r
        .LeftFooter = f_l
        .CenterFooter = f_c
        .RightFooter = f_r
        .LeftMargin = m_l
        .RightMargin = m_r
        .TopMargin = m_t
        .BottomMargin = m_b
        .HeaderMargin = m_h
        .FooterMargin = m_f
        .CenterHorizontally = c_h
        .CenterVertically = c_v
        .Orientation = y_muki
        .PaperSize = y_size
        .FirstPageNumber = f_p_n
        .Order = p_o
        .Zoom = p_zoom
        .FitToPagesWide = f_p_w
        .FitToPagesTall = f_p_t
        .PrintErrors = p_e
    End With

 おしまい。

0 件のコメント: