
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Renta !全タテコミ作品第1話無料配信!!
縦スクロール&フルカラーマンガ特集!
-
エクセルの行タイトルを特定のページにつけたい。
Excel(エクセル)
-
エクセルで、ページごとに見出しを変えたい
Excel(エクセル)
-
エクセルでのヘッダーをページごとにかえられますか?
Excel(エクセル)
-
4
エクセルで、分かれた行を印刷タイトルに設定したいです。
Windows 7
-
5
エクセルで複数枚になる請求書を作成したい
Excel(エクセル)
-
6
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
7
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
8
エクセルでページごとにヘッダー・フッターを設定できますか?
Excel(エクセル)
-
9
行タイトルを最終ページだけ表示させない
Excel(エクセル)
-
10
ユーザーフォームのコピー?
Excel(エクセル)
-
11
VBAでドラッグ・アンド・ドロップ
Visual Basic(VBA)
-
12
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
13
EXCEL あるセルに数字が入力されれば既存マクロ実行させたい
Excel(エクセル)
-
14
エクセルでページ数をあるセルに表示させたい
Excel(エクセル)
-
15
エクセル2013で1ページ目と2ページ目の印刷拡大・縮小について
Excel(エクセル)
-
16
Excelで、複数行の行タイトルの一部をページごとに異なる文字列にしたい
Excel(エクセル)
-
17
エクセル VBA 複数条件に対した印刷ページ不要の行を非表示にしたい
Excel(エクセル)
関連するQ&A
- 1 2行目以降のインデントを変える際、1行目のインデントまでくっついてきて困っています。
- 2 Excel2000で行のタイトルの印刷が2ページ目以降おかしい。
- 3 エクセル2013で1ページ目と2ページ目の印刷拡大・縮小について
- 4 エクセルで作った"複数ページの表"の印刷時、各ページに表中の「項目欄」や「ページ数」を表示したい。
- 5 エクセル表印刷で、各ページ1行目にタイトルを入れたい。
- 6 EXCELでの印刷で2ページ以降にも1行目に入力されている文字列を印刷したい
- 7 Excel:2ページ目以降のタイトルが切れる。
- 8 アウトルックの受信メール等を印刷する際、1ページ目のみ印刷したいことが
- 9 エクセル 複数のページに、印刷タイトルをいれたいです。こちらについては、ページレイアウトから印刷タイ
- 10 エクセルで 表の上に違う趣旨の表を添付したいです。 本来なら2枚になる表を 表の余白に別の簡単な表を
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
右手の人差し指だけが冷たい
-
5
口の中に黒い血の塊
-
6
お酒を飲んだときの寒さ
-
7
毎日ワイン1本飲む彼氏について
-
8
ここ三週間ほど、毎日みぞおち...
-
9
顎下の左右にグリグリとしたし...
-
10
納豆食べた後の尿の納豆臭は何故?
-
11
テスターで断線を調べる方法教...
-
12
舌の裏の痛みのないプツプツの...
-
13
血液検査の結果、血が濃いと言...
-
14
運動すると食欲がなくなる理由は?
-
15
油ものを食べると吐き気がします
-
16
精液が漂白剤のにおいがする・・・
-
17
爪が紫色?
-
18
乳首にしろいカスがついている
-
19
胃と腸が胎動のように動きます...
-
20
エクセル指定した範囲からラン...
おすすめ情報
公式facebook
公式twitter