No.2ベストアンサー
- 回答日時:
>4~49行がデータ
>50~95行がデータ
この行数、つまり45行入るかどうかは、このマクロは考慮されておりません。最初、プレビューから、マージンなどで、調整して納まるようにしてください。
また、一応、垂直改行は考慮はしていますが、1ページに収まらない右にはみ出た分に関しては、処理できません。
もし、とのようなスタイルでも、希望の行数にするなら、手動改ページを入れるなど、別のマクロが必要です。
'//
Sub PrintOutMacro()
Dim i As Long
Dim sPrintArea As String
Dim HPage As Long
Dim VPage As Long
Dim PageTotal As Long
Dim FirstPage As Integer
Dim LastRow As Long
Dim RightCol As Long
With ActiveSheet
'-------------------------------
'印刷範囲再設定
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
RightCol = Cells(4, Columns.Count).End(xlToLeft).Column
sPrintArea = Range("A4", .Cells(LastRow, RightCol)).Address
.PageSetup.PrintArea = sPrintArea
'-------------------------------
FirstPage = 1 '最初のページ
On Error Resume Next
'ページ数の算出
HPage = ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(64))") - 1
VPage = ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(65))")
On Error GoTo 0
PageTotal = Int(HPage * VPage) 'ページ総数
'誤動作のための保守
If PageTotal <= 2 Then
If MsgBox("ページが、" & PageTotal & "枚しかありませんがよろしいですか?", _
vbQuestion + vbOKCancel) = vbCancel Then Exit Sub
End If
For i = FirstPage To PageTotal
If i = 1 Then
.PageSetup.PrintTitleRows = "$1:$3"
Else
.PageSetup.PrintTitleRows = "$3:$3"
End If
.PrintOut From:=i, To:=i ', Preview:=True ''外すとプレビューになる
Next i
End With
End Sub
'///
WindFallerさん
回答ありがとうございました。
プレビューで確認できました。
素人なのでWeb上で検索しながらコピーしてコードを作っているのですが
たびたび壁に当たります(^^;
これでまたゴールに近づくことができました。
また質問するかと思いますのでよろしければご教授お願いします。
ありがとうございました。
No.1
- 回答日時:
Worksheet.PrintOut メソッドは、その引数により、印刷するページを指定できます。
つまり 1 ページ目だけ印刷し、1 ~ 2 行目の値を Range.ClearContents で消し、改めて 2 ページ目以降を指定して印刷すればいいですね。その後さらに、消した文字列を同じ範囲に記入しておけばいいですね。
あるいは、あらかじめ 1 ~ 2 行目に記入しておいた IF 関数によりタイトルを表示させ、IF が参照しているスイッチとなるセルの値を書き換えると、タイトルが非表示になるようにしておいてもいいです。上と同様に、印刷するページごとにスイッチの値を上書きしていけばいいですね。
各メソッドなどについては、VBE 画面のヘルプを確認してください。
MarcoRossiItalyさん
回答ありがとうございました。
説明不足ですみません。
上司がエクセル上で確認するケースもあるので、印刷プレビューの時点で
1ページ目と2ページ目以降の表示を変えたかったのです。
ページ設定でタイトル行を3行目にすると表示されるのですが、50行目に
小計行があり、ページを追うごとにずれてしまい、うまく表示できませんでした。
IF関数の入れ方などもっと調べてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- PDF 2つのPDFを重ねる方法はありますか? 4 2023/01/30 14:04
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Visual Basic(VBA) 改ページ 2 2023/03/10 21:29
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセルで、分かれた行を印刷タイトルに設定したいです。
Windows 7
-
エクセルの行タイトルを特定のページにつけたい。
Excel(エクセル)
-
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
-
4
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
5
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
6
エクセルでエラーが出て困っています。
Excel(エクセル)
-
7
エクセルでのヘッダーをページごとにかえられますか?
Excel(エクセル)
-
8
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
9
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
10
シートの保護のあとセルの列、幅を動かせるようにしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報