No.4ベストアンサー
- 回答日時:
>データの最後の行までのページを印刷できるようにする
データの最終行を、泥臭く、一行一行空白かと聞いて探すことにします。
>最後のデータより下の行もずっと罫線が引いてあります。
印刷したデータ最終行の下辺は罫線がないと、締りがなくて、いやですから罫線を引きます。
>最後のデータより下の行もずっと罫線が引いてあります
難しいのは、その罫線表に一杯にデータが入った時、1ページで印刷できるものかどうかです。
次ページに跨る場合は見だし部分などを次ページ(以下)にも印刷せねばならないでしょうから。
改ページなしに印刷するメソッドを知らないので、別シートに編集して、そのページが別シートに完成後、別シート
を印刷します。
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
'--一たんすべてコピー
sh1.Range("a1:e50").Copy
sh2.Activate
sh2.Range("a1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
'------データ行について
j = 3
p01:
For i = 3 To 2 + 40
If sh1.Cells(j, "A") = "" Then Exit For
sh2.Cells(i, "A") = sh1.Cells(j, "A")
sh2.Cells(i, "B") = sh1.Cells(j, "B")
sh2.Cells(i, "C") = sh1.Cells(j, "C")
sh2.Cells(i, "D") = sh1.Cells(j, "D")
sh2.Cells(i, "E") = sh1.Cells(j, "E")
j = j + 1
Next i
sh2.Range(Cells(i - 1, "A"), Cells(i - 1, "E")).Borders(xlEdgeBottom).LineStyle = xlContinuous
sh2.Range(Cells(i, "A"), Cells(50, "E")).Clear
' sh2.Range(Cells(1, "A"), Cells(50, "E")).PrintOut
'----42行を越えると繰り返し
If i > 2 + 40 Then
sh2.Range("A3:E42").ClearContents
GoTo p01
End If
End Sub
この質問ぐらいの内容になると、マクロの記録の技量だけでは難しい気がします。上記も類似(と思っている)例で出来る例がありますというヒント程度を示すものであり、VBAの経験者があちこちチューニングして、初めて質問の目的のようになるのであって、そのままで一発で動くとか思い通りであることは期待できません。実際の問題を目の前においてプログラムを組まないと、ちょっとした違いでも動かないとか結果がおかしいことがありますので、甘く期待しないで下さい。
もちろん少数例ではテスト済みですが。
テストはSheet2を全セル指定、編集-クリア-すべて、でクリアして繰り返してやって下さい。
いつもお世話になります。
今回は、なんとか出来ましたので今後参考にさせていただきます。
お礼が大変おそくなりご迷惑をおかけしました。ありがとうございました。
No.3
- 回答日時:
#2さんの回答とほとんど同じですが、書式設定してあると xlLastCell はデータの最終を返さないと思います。
A列のデータ最終を最終行として A1:Cxx行を範囲とする例です。
Sub Test()
With ActiveSheet
.PageSetup.PrintArea = _
.Range("A1:C" & .Range("A65536").End(xlUp).Row).Address
End With
End Sub
回答ありがとうございました。
今回は、なんとか出来ましたので今後参考にさせていただきます。
お礼が大変おそくなりご迷惑をおかけしました。
No.2
- 回答日時:
"データの最後の行"というのをどのように認識されてますか?
sheet1の使われている最後のセル、いわゆるSpecialCells(xlLastCell)まででしょうか?
また、改ページはどうされるのでしょうか?
など、少しわからない点があるので詳しいソースはかけませんでした。
しかし、印刷範囲の指定は、たとえばA1セルからG50セルまでを印刷範囲とする場合、
WorkSheets("sheet1").PageSetup.PrintArea = "A1:G50"
のように指定できたと思います。
データの最後の行を取得してきてこの範囲にあてはめればどうでしょうか。
回答ありがとうございます。
一応、試行錯誤した結果できるようになりました。
--------------------------------------------------
Range("B2:J2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.PageSetup.PrintArea =Selection.Address
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
--------------------------------------------------
Range("B2:J2")は、タイトル行です。
>データの最後の行を取得してきてこの範囲にあてはめればどうでしょうか。
この方法ではエラーになってしまいました。
基本がないので、なかなか皆さんの回答を読んでも理解するのに時間がかかり御礼が遅くなりました。
またよろしくお願いします。ありがとうございました。
No.1
- 回答日時:
シートの「印刷範囲の指定」ではいけませんか?
1.印刷したい範囲をドラッグして選択します(たとえばC3からG20のように)
2.ツールバー「ファイル」=>「印刷範囲」=>「印刷範囲の設定」
3.必要に応じて「印刷プレビュー」で調整してください。
回答ありがとうございます。
>「印刷範囲の指定」ではいけませんか?
今回は、誰でも(エクセルの使えない人でも)ボタン1つできれいに印刷まで出来るように作りたかったのでこの方法は使えませんでした。説明不足ですみません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 白黒印刷で白線を印刷...
-
エクセルで白紙ページを消す方...
-
エクセル 同じシートで印刷ペ...
-
Excel 複数のシートの印刷順の...
-
数式による空白を無視して印刷...
-
B5縦で作ったエクセル文書をA4...
-
エクセル 2upできません。
-
エクセルで謎の2枚目が印刷される
-
エクセルを最初からA4の大きさ...
-
エクセルの長い表を3列で印刷...
-
縦一列の表を縦三列にして印刷...
-
エクセルで印刷するとき、連番...
-
EXCELで作成した文章を縦書きで...
-
差込印刷で郵便番号のハイフン...
-
エクセルの印刷範囲の自動変更...
-
EXCELで段組みできますか?
-
Excelでセルに色をつけても、モ...
-
エクセルで、たくさんの領収書...
-
エクセルで図形やオートシェイ...
-
エクセルから帳票形式に差込印...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで謎の2枚目が印刷される
-
エクセルで白紙ページを消す方...
-
エクセル 同じシートで印刷ペ...
-
Excel 複数のシートの印刷順の...
-
差込印刷で郵便番号のハイフン...
-
数式による空白を無視して印刷...
-
エクセルだけ印刷しても白紙です。
-
エクセルから帳票形式に差込印...
-
エクセルを最初からA4の大きさ...
-
エクセル 2upできません。
-
エクセルで空白の部分を印刷範...
-
B5縦で作ったエクセル文書をA4...
-
エクセルで印刷するとき、連番...
-
Excelで印刷すると、ルビがずれ...
-
エクセルの印刷範囲の自動変更...
-
エクセルの長い表を3列で印刷...
-
エクセルの全シートをPDFにでき...
-
VBAでホルダー内のPDFを一括印...
-
EXCELで段組みできますか?
-
コマンドプロンプトからEXC...
おすすめ情報