[[20101008085711]] 『印刷範囲の設定マクロ』(いい) ページの最後に飛ぶ

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

 

『印刷範囲の設定マクロ』(いい)

・1シートに24枚の表が並べてあります。

・複数のシートを使うのですが、すべてのシート名に『■』を付けています。

マクロの内容は・・・
表の1番最初のセルに文字が記入されていればそのページまで印刷範囲を設定する。

というものなのですが、シート名に『■』がついているシートに実行するようにしてしまいました。
それだと複数シートを選択して印刷するとおかしくなってしまいます。
(最初に選んだシートの印刷範囲が2枚だとすると他も2枚分の印刷範囲になってしまいます)

どのように直せば良いかご教授願います。

Private Sub Worksheet_Activate()

Application.ScreenUpdating = False

    For i = Worksheets.Count To 1 Step -1

    If InStr(Application.Sheets(i).Name, "■") <> 0 Then

    Application.Sheets(i).PageSetup.PrintArea = ""

    If Range("d3").Value <> "" Then Application.Sheets(i).PageSetup.PrintArea = "A1:AO64"
    If Range("as3").Value <> "" Then Application.Sheets(i).PageSetup.PrintArea = "A1:CD64"
    If Range("ch3").Value <> "" Then Application.Sheets(i).PageSetup.PrintArea 
〜〜〜〜〜中略〜〜〜〜〜
    If Range("as451").Value <> "" Then Application.Sheets(i).PageSetup.PrintArea = "A1:DS448,A449:CD512"
    If Range("ch451").Value <> "" Then Application.Sheets(i).PageSetup.PrintArea = "A1:DS512"

    End If

    Next i

Application.ScreenUpdating = True

End Sub


 こんにちは

 処理内容は良く理解出来てないですけど、

        If Sheets(i).Range("d3").Value <> "" Then Sheets(i).PageSetup.PrintArea = "A1:AO64"
        If Sheets(i).Range("as3").Value <> "" Then Sheets(i).PageSetup.PrintArea = "A1:CD64"
        If Sheets(i).Range("ch3").Value <> "" Then Sheets(i).PageSetup.PrintArea
    '〜〜〜〜〜中略〜〜〜〜〜

 のようにすればいのでは?
(ウッシ)

ウッシ様

教えていただいた通りにしたら成功しました!!
勉強させていただきます*

(いい)


コメント返信:

[ 一覧(最新更新順) ]


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