
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
値が入っているときだけ計算結...
-
Excel 0目標に対して数字があ...
-
検便についてです。 便は取れた...
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
至急!尿検査前日にオナニーし...
-
2つの数値のうち、数値が小さい...
-
彼女のことが好きすぎて彼女の...
-
精子に血が・・・
-
EXCELで条件付き書式で空白セル...
-
ワードのページ番号をもっと下...
-
WORDで複数語句を検索するには
-
病院側から早く来てくださいと...
-
ある範囲のセルから任意の値を...
-
採血中の看護師さんの、自分の...
-
尿検査の前日は自慰控えたほう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
尿検査前日に自慰行為した時の...
-
至急!尿検査前日にオナニーし...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
尿検査の前日は自慰控えたほう...
-
MIN関数で空白セルを無視したい...
-
小数点以下を繰り上げたものを...
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
Excel 数値の前の「 ' 」を一括...
-
【Excelで「正弦波」のグラフを...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
ある範囲のセルから任意の値を...
おすすめ情報