[[20180619160944]] 『改ページの統一』(ゾーマ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『改ページの統一』(ゾーマ)

とある調査票を配布し、回収したのですが、セキュリティの関係等で配布時の改ページが変更されているものがありました。

こちらの作業としては一つのブックに各シートをまとめるのですが
ものによって改ページの位置がちがうというのは印刷するときにも困ります。

作業グループ状態で、印刷範囲を変更しようとしたのですが、グレーアウトになっており、おそらく仕様でできないのかと思います。

そこでマクロで疑似的に実行しようと思います。
選択しているシートを先頭の改ページ範囲にすべて変更するというものを作ろうとしてますが、まず範囲取得から壁にぶち当たって作れておりません。

お力添えよろしくお願いいたします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


改ページは、行方向だけと考えて良いですかね?

 Sub test()
    Dim wk As Worksheet
    Dim i As Long
    Dim j As Long

    Set wk = Sheets(1)

    For i = 2 To Sheets.Count
        With Sheets(i)
            .ResetAllPageBreaks
            For j = 1 To wk.HPageBreaks.Count
                .HPageBreaks.Add before:=.Range(wk.HPageBreaks(j).Location.Address)
            Next j
        End With
    Next i
 End Sub
(???) 2018/06/19(火) 17:05

???さんへ

一応そっくりそのままのページ設定が良いので列方向もほしいですが、
おそらく垂直はVPageBreaks.〜を入れれば良いと思うのでとりあえずこれで試してみます!
(ゾーマ) 2018/06/19(火) 17:21


一応やりたいことはできたのですが、
改ページの実線がシート1通りになったのですが、
改ページの破線が現れてしまい、印刷すると膨大な数になってしまうのですが、これは消すことができないのでしょうか・・・。
(ゾーマ) 2018/06/19(火) 17:40

Excel2010だと、全て破線でしか改ページ表現されないのですが、印刷数が増えるシートと普通のシートの違いが判りませんか? 例えば、文字長が長くてページからはみ出しているシートがある、とか、セル幅や高さを変えたシートがある、とか。

または、印刷範囲の設定は、「名前の管理」にある「Print_Area」に範囲情報がありますが、これが関係していませんか? 名前定義を消すか、1つ目のシートに合わせてみてください。

 Sub test()
    Dim iR As Long
    Dim N As Name

    For Each N In ThisWorkbook.Names
        iR = iR + 1
        Cells(iR, "A").Value = N.Name
        Cells(iR, "B").Value = "'" & N.Value
        N.Delete
    Next N
 End Sub

(定義を消すなら N.Delete するだけ)
(???) 2018/06/20(水) 10:26


なるほど、プリントエリアが影響していた可能性がありますね。
確認してみます。
すみませんがこのしたのコードは何をするものでしょうか・・・。
(ゾーマ) 2018/06/21(木) 13:37

ブック内の名前定義をリストアップしてます。ついでに名前定義を全部消しているので、実行後は名前定義が何も無い状態になります。

見るだけなら、Deleteの行をコメントアウトすれば良いし、削除だけならセルに情報を代入しているのを止めれば良い。印刷範囲だけ消すなら、N.Name を調べて、該当したときだけ消すように変えれば良いです。1つ目のシートに範囲を合わせるなら、1つ目のシート名のPrint_Areaの指定を、他のシートのものに当てはまれば良いでしょう。
(???) 2018/06/22(金) 09:17


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.