Excel マクロは私にとっていばらの道です。
__________A______B_____C_____D
1_______名前____金額__日付__摘要
2______あああ__55555___6___kkk
3______いいい__________6___hhh
4______ううう__33333___6___ppp
---------------------------------
5______えええ__44444___8___ggg
6______おおお__77777___8___lll
7______あいう__22222___8___rrr
一つのシートを、A2:D4 と A5:D7 の2枚に分けて印刷するマクロを作りたいと考えています。
A1:D1の項目行は、「印刷タイトル」に設定してあります。
金額は空欄の場合もありますが、A名前、C日付とD摘要は連続です。
データ行は増えたり減ったりし、一定ではありません。
日付けの変わるところが印刷区分です。この日付の変わり目をつかまえて印刷範囲を指定できると思っていますが、なかなか巧くいきません。
印刷区分は、範囲設定でなく、ページ区分でもかまいません。
なるべく行数の少ないスカッとしたマクロにするにはどうしたらよいでしょうか。
教えて下さい。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは。
見出しもマクロで設定します。お試しください。
Sub 印刷()
Dim wR As Long
Dim maxR As Long
With ActiveSheet
maxR = .Range("A" & Rows.Count).End(xlUp).Row
For wR = 3 To maxR
If .Cells(wR, 3).Value <> Cells(wR - 1, 3) Then
'日付が変わる時、改頁の Break Point設定
.Rows(wR).PageBreak = xlPageBreakManual
End If
Next
End With
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$1" '←1行見出し
.PrintArea = "A1:D" & maxR '←印刷範囲設定
End With
ActiveSheet.PrintOut
End Sub
この回答への補足
pkh4989さん ありがとうございます。
実際はもう少し大きい表で、編集したいので教えて下さい。
> For wR = 3 To maxR
> If .Cells(wR, 3).Value <> Cells(wR - 1, 3) Then
> .PrintTitleRows = "$1:$1"
これは見出し行が2行、日付が列 E にある場合次のようにしてよいですか。
For wR = 4 To maxR
If .Cells(wR, 5).Value <> Cells(wR - 1, 5 ) Then
.PrintTitleRows = "$1:$2"
表の下に、別の記事がある場合、印刷を表の部分のみで終わりにするとき、どうしたらよいですか。
よろしくお願いします。
No.3
- 回答日時:
こんにちは。
>これは見出し行が2行、日付が列 E にある場合次のようにしてよいですか。
> For wR = 4 To maxR
>If .Cells(wR, 5).Value <> Cells(wR - 1, 5 ) Then
>
>.PrintTitleRows = "$1:$2"
OKです
>表の下に、別の記事がある場合、印刷を表の部分のみで終わりにするとき、どうしたらよいですか。
行の最大を求めるのはA列ですので、「別の記事」がA列のなければ、大丈夫です。
pkh4989さん ありがとうございます。
別の記事をB列より右に移して巧くいきました。
なお、前に使ったページ区分を引きずらないよう、冒頭に「印刷範囲クリア」のコードを入れました。
ActiveSheet.PageSetup.PrintArea = ""
No.1
- 回答日時:
> A1:D1の項目行は、「印刷タイトル」に設定してあります。
という前提です。
C列が日付欄として、日付の変わり目に改ページを挿入します。
Sub Test()
Dim i
i = 3
Do Until Cells(i, 3) = ""
If Cells(i, 3).Value <> Cells(i - 1, 3) Then
Rows(i).Select
ActiveWindow.SelectedSheets.HPageBreaks.Add _
Before:=ActiveCell
End If
i = i + 1
Loop
'ActiveSheet.PrintOut
End Sub
1行目はタイトル行、データが2行目からですので、3行目の日付が2行目と
同じかどうか、からチェックを開始しています。
違っていたら、その行を選択して改ページを挿入します。
この回答への補足
misatoannaさん ありがとうございます。
質問の条件が書ききれていませんでした。
表の右にも下にも別の記事があって、表の部分だけを2枚に抜き出して印刷したいのです。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Visual Basic(VBA) 印刷をVBAでしたい とあるフォルダに1〜5までの名前がついたbookが保存されてます このbook 2 2022/03/28 09:30
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) 【Excel】エクセルの1シートが2枚に分割されてしまうので印刷プレビューを押して閉 4 2022/12/13 13:12
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 日付 指定 連続印刷
-
日付が印刷されるデジカメ
-
写真の日付を印字しない方法
-
パソコンで『日付』の入力
-
スマホ本体からSDカードへ移...
-
デジカメの写真に日付をいれた...
-
デジカメで撮影した写真に、日...
-
デジカメの日付表示を消す方法
-
Photoshop Elementsと写真の日付
-
同級生の顔を使ってエロ画像を...
-
Googleドライブの動画の画質に...
-
pixivの画像を保存しようとした...
-
JPEGファイルに文字を入れたい
-
プリント画面の丁合いとはなん...
-
マクロで画像挿入→エラー「リン...
-
iPhoneで写真を撮りました。 端...
-
至急回答お願いします、彼氏に...
-
「強調」の対義語は何ですか?
-
Exif情報が表示されないの何故?
-
縦800ピクセル×横800ピクセルを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 日付 指定 連続印刷
-
スマホ本体からSDカードへ移...
-
Word:日付を入れ替えながら印...
-
デジカメの日付表示を消す方法
-
デジカメで撮影した写真に、日...
-
日付入り写真をエクセルに貼り...
-
CD-Rを作成した日を知る方法は...
-
パソコンで『日付』の入力
-
ヘッダ[送信日時]の編集
-
デジカメの写真に日付をいれた...
-
写真の日付を印字しない方法
-
キャノン デジカメ 日付変更...
-
EOS kiss の日付が表示されなく...
-
usbの中のものも、Googleフォト...
-
コンタクトシートでExif情報も...
-
パワーポイントの画面に日付が...
-
Photoshop Elementsと写真の日付
-
この写真のようにオレンジ色で...
-
日付入りで撮影した写真を、印...
-
デジカメ画像の日付?
おすすめ情報