『印刷範囲』(yy)
教えてください
間違っていたらすみません
.FitToPagesTall = False
横を取得するで False
横BからHまでの縦の範囲のみで印刷したいのですが
全てのコードです
Sub A_ボタン1_Click()
With Worksheets("A ").PageSetup
.Zoom = False
.FitToPagesTall = False
.FitToPagesWide = 1
.PrintTitleRows = "$2:$3"
End With
Worksheets("A ").PrintOut Preview:=True
End Sub
訂正有りましたら他にもよろしくお願いします
よろしくお願いします
< 使用 Excel:Excel2021、使用 OS:Windows11 >
済みませんが、質問は何でしょうか? あなたの意図が達成できていない点は何か、はっきり書いてください。 (xyz) 2024/04/09(火) 23:09:57
「印刷範囲の設定」がされていないからじゃないでしょうか。 設定する動作を行って、それをマクロ記録すれば、骨格のコードが得られます。 試してみて下さい。 PrintAreaプロパティを使うことになりますね。
(xyz) 2024/04/10(水) 00:53:54
(yy) 2024/04/10(水) 01:29:16
印刷範囲を設定する必要性は理解いただいたでしょうか。 それには、印刷範囲がどこなのか説明が必要です。 予想はありますが、データとの関係を織り込んで念のため説明していただきたいです。 (xyz) 2024/04/10(水) 07:27:38
質問者さんの提示を待ってと思っていましたが、反応無いのでコメントします。
H列より右の列も印刷されてしまって困っているんですよね? 印刷範囲を設定しない限り、いつまで経っても、 データのある列すべてが横1ページに収まって印刷されることから逃れられません。
> 何もしない状態で1ページを指定したままですと行を追加して > 印刷範囲が増えても2ページ分なら2ページ3ページ分なら3ページ分 > しか表示されないですみます。 いったい、何を優先しようとしているんですか? 一番重要なのは「印刷範囲の設定」じゃないですか?
予め多めにとっておけなどと申し上げていません。 マクロ実行するんですから、その中でデータがある最終行を求めて、 A4:H列の最終行 を印刷範囲に指定すればよいにでは? (印刷範囲はデータがある最終行までという前提です)
データのある最終行が明確にわかる列があるなら、 Cells(Rows.Count, その列).End(xlUp).Row で最終行がわかります。 普通はこういうことが多いですね。 (最終行は頻発するので、ご存じではないですか)
一概にどの列が最終行かは決まらない、ということなら、 lastRow = Columns("A:H").Find("*", , xlValues, xlPart, xlByRows, xlPrevious).Row とすれば求まります。
>横BからHまでの縦の範囲のみで印刷したい >これをAからHまでに印刷範囲にしたい どっちですか? Aからとして以下書いています。
Sub test() Dim lastRow As Long lastRow = Worksheets(1).Columns("A:H").Find("*", , xlValues, xlPart, xlByRows, xlPrevious).Row With Worksheets(1).PageSetup .PrintArea = "$A$4:$H$" & lastRow .Zoom = False .FitToPagesTall = False ' 縦は自由 .FitToPagesWide = 1 ' 横は1ページに収める .PrintTitleRows = "$2:$3" End With Worksheets(1).PrintOut Preview:=True End Sub # ワークシート指定は修正してください。 # これ以上のことは持ち合わせませんので、これで失礼します。
(xyz) 2024/04/10(水) 11:46:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.