[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『自動印刷範囲』(ワクチン接種)
印刷の際、毎回データの量が変わるので自動でデータ入力行までの印刷範囲を 設定できないかと模索しているところ =OFFSET(受取手形!$A$1,0,0,COUNTA(受取手形!$A:$A),9)という関数に出くわしましたので 早速設定を行ったところ、データが書かれている最終行の一列手前までしか範囲を選択してくれません。
このブックはコピーでいろいろ使い回しますし、Excel初心者の方にもつかってもらうため できるだけ簡単に作業ができるようにしたいのです。
A,E,J列にはマクロを入れてます。あと一歩だと思うのですが、皆様、力を貸してください。 なおマクロに関しては初心者ですので、既存するマクロ(ここで教えてもらった)とのつなげ方等わかりません。 よろしくお願いします。
A列のデータの途中に空白があるのでは? (純丸)(o^-')b
シートを限定するような判定が必要かどうかわかりませんが Thisworkbookモジュールに
Private Sub Workbook_BeforePrint(Cancel As Boolean) With ActiveSheet .PageSetup.PrintArea = _ Application.Intersect(.Columns("A:J"), .Range("A1").CurrentRegion).Address End With End Sub
こんな感じでできませんか? (momo)
さっそくThisworkbookモジュールに追加しましたがどうやって動作させるのでしょうか? マクロを選択する画面に新しいマクロが追加されてません…。 お手数ですが、詳しく教えてください。
純丸さん空白行は一切ありません。
Private Sub Workbook_BeforePrint ~~~~~~~~~~~ Before …の前に Print プリント
実際に印刷してみましたが、全ページ出力されて急いで印刷をキャンセルしました。 momoさんのマクロはI4:I500まで関数を書いている場合には使用不可なのでしょうか?
数式が入っているのですね・・・ その場合はダメですね。 別の方法でもできますので そのセルに入っている数式を教えてください。 (momo)
たぶん、IFかなんかで""にされていると予測して
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim LastRow As Long With ActiveSheet LastRow = .Columns("A:J").Find(What:="*", After:=.Range("A1"), LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _ MatchCase:=False, MatchByte:=False, SearchFormat:=False).Row .PageSetup.PrintArea = "A1:J" & LastRow End With End Sub
こんな感じでどうでしょう? 印刷ではなくて、印刷プレビューでテストしてみてください。 (momo)
その場合はどういうマクロにすればよいですか? (ワクチン接種)
シート全部に適用したいのですか? それとも一部のシートのみですか? どのようなシートに適用して、どのようなシートに適用しないのか またどのようにシートごとに列数が違うのですか? 規則性はありますか? (momo)
Sheet4(出納帳)はA〜G列 Sheet5(手形開始残高)はH列まで Sheet6(受取手形)はJ列まで Sheet7(支払手形)はG列まで
以上です。よろしくお願いします。
テストしていませんが、こんな感じでどうでしょうか?
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim LastRow As Long Dim Sh As Worksheet Dim strColumn As String For Each Sh In ActiveWindow.SelectedSheets Select Case Sh.Name Case "出納帳": strColumn = "G" Case "手形開始残高": strColumn = "H" Case "受取手形": strColumn = "J" Case "支払手形": strColumn = "G" Case Else: Exit Sub End Select With Sh LastRow = .Columns("A:" & strColumn).Find(What:="*", After:=.Range("A1"), LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, _ MatchCase:=False, MatchByte:=False, SearchFormat:=False).Row .PageSetup.PrintArea = "A1:" & strColumn & LastRow End With Next Sh End Sub
(momo)
momoさんのおかげで最高の仕上がりとなりました。 本当にありがとうございました!!!
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.