

Excel VBAで、以下のようなことをしたいです。
前置き:
Excelのシートで、一覧があります。
この一覧は、事前にA4の紙四枚に印刷出来るように印刷範囲、改ページの設定をしてあります。
●印刷範囲指定
・a4縦に印刷
・一覧は、横長12列 x 4が、印刷範囲に指定
・1ページ内に、12列含む、縦長のa4に印刷
このシートを、別のブックに保存でコピーして、ブックが表示されると
この改ページが結構乱れていて、指定していたようなa4 x 4枚の紙に印刷出来ません。
それを、vbaコードである程度修正したましたが、それでも、
横に破線が一本表示されてしまい、そこで、改ページされてしまいます。
手動ならば、この破線をマウスで下にスクロールして、消す事は出来ますが、それをvbaで消したいのですが、どうすれば良いでしょうか。消すというのは削除するということです。
その破線が、どの行のbOTTOM部分に位置しているか判断する方法がわかりませんので、vbaでその破線をスクロールするのは難しそうですし、消す方法もわかりません。
よろしくお願いします。

No.3ベストアンサー
- 回答日時:
ANo1です。
>それを、vbaコードである程度修正したましたが・・・
とありましたので、A4にきちんと収まるように修正がなされていて、改ページ位置だけがうまく調整出来ないという状況かと思いましたが、どうやら違うのかも知れませんね。
どのような方法でコピーなさっているのかわかりませんが、改ページの設定をする前に、セルサイズやページ印刷の設定(余白など)についても、予定の内容に再設定しておかないと、改ページの位置を予定通りに設定できない場合があります。
あとは、設定の際にいきなり既存の改ページをキャンセルしようとしても物理的に無理な場合はできません。
再設定の手順としては、(確実に改ページできるとわかっている)予定の位置にまず改ページを設定したうえで、残りの不要な部分について削除する必要があります。
理由についてはANo2様が言及していらっしゃいますので省略。
アドバイスありがとうございます。
なかなか、シートを別ブックに手動でコピーした時の印刷範囲の勝手に代わってしまう現象で、それをVBAで修正するのは大変な場合がありますね。
その場合に、汎用的に修正するのはかなり難しそうですが。
No.4
- 回答日時:
こんばんは。
#2の回答者です。
>以下のようなソースで、移動させて消すことは出来ました。
DragOff(Direction, RegionIndex)
を使えば消えますね。改ページプレビューの時だけに働く機能です。
点線は、物理的に入らないというメッセージですが、マクロ的に、DragOffを使って、結果的に縮小が掛かるというわけです。
私は、あまり、そういうことは考えたことがありません。それで良い職場もあるとは思いますが、縮小は、言葉には出せないほどの苦い思い出があります。
想像どおりでしたが、
>ページレイアウトを見てみると、99%の拡大率で、上1.9, ヘッダー1.3, 右2.2, 左2.5, 下2, フッター1.3となります。
その設定で、自動改ページが出るのだったら、私は、物理的な調整をすると考えていました。上のマージンを調整をしますね。
以下をマクロでやるような人はいないと思いますが、このようなことを意味しています。
Sub PrintArrangement()
Dim k As Long
With ActiveSheet
k = .PageSetup.TopMargin
Do Until ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(64))") = 1
k = k - 1
If k < 3 Then Exit Do '適正値は知りません。
.PageSetup.TopMargin = k
DoEvents
Loop
End With
If k >= 3 Then
MsgBox "1枚に収まります。", vbInformation
End If
End Sub
添付画像で、マクロを掛けるす少しずつ下に降りていきます。

ご指摘大変参考になります。が、私の方で自分で作成したSelection_Changeのイベントのコードをコメント化した上で、シートを新規ブックにコピーしてテストをしてみました。
1) 印刷範囲が、説明済みのとおりおかしくなる。破線の横線が出る。
2) トップマージンを1.9から1.4に変更し、拡大率を100%にしてから、シートを新規ブックにコピーする
3) 印刷範囲がまたずれる。この時、ページ設定をみると、
変更前:上1.9, 下2, 左2.5, 右2.2で、拓大率が99%, A4
変更後:上1.4, 下2, 左2, 右1.7で、拡大率が100%, A4
新規ブックにコピーした時の設定
→変更後と同じ
手動で、縦と横の破線をドラッグしてなくすと、ページ設定は以下のとおりとなりました。
上1.4, 下2, 左2, 右1.7で、拡大率が 81%, A4
この変わり方が意味がわかりません。何故、拡大率が81%となるのか。
最初は、99%または、100%できちんとA4に入っていたのが、新規ブックにコピーすると、このように81%になってしまいます。
この挙動について、もし、お分かりになれば、ご説明お願いします。
この質問は既に、解決済みですので、新規で質問を作成します。
よろしくお願いします。
No.2
- 回答日時:
#1の方に反応していませんから、ちょっと私の方にも返事が付くか分かりませんが、その破線というのは、そもそも改ページプレビューのようです。
改ページというものには、2種類あります。
1.自動改ページ
2.手動改ページ
それで、破線が物理的な位置や範囲問題で入る、1.の場合は、そのままではお手上げなのです。VBAで可能ではあっても、そこまで、回答者側が、上げ膳据え膳のようにお世話することはありません。印刷はトライアンドエラーが必要です。
>この一覧は、事前にA4の紙四枚に印刷出来るように印刷範囲、改ページの設定をしてあります
だから、その最後の位置が足らないということでは?
>その破線が、どの行のbOTTOM部分に位置しているか判断する方法がわかりませんので、vbaでその破線をスクロールするのは難しそうですし、消す方法もわかりま
どの行に入るかぐらいは、VBAでは出ます。その位置も移動できます。
しかし、そういうことではなくて、物理的に改ページを入れなくて、一枚に、その印刷範囲が入るかどうかの前提がなくては、途中でかからないようにすることはできないのです。
やたらに、その改ページの破線が入るわけではありません。物理的な領域が足らないからです。主に、上のマージンが、デフォルトのままであるとか、そうするとうまく行かないのです。(上と左のマージンで、他のマージンは決まってくるので、とりあえず、上部のマージンを調整します。)
手動改ページをVBAで適当な所には入れられるのです。それには、そこに印刷できるという前提があってのことです。また、A41枚に入れる問題には、手動改ページは直接関係がありません。
だから、直接VBAの問題ではありません。
私の話は分かっていただけますでしょうか?
ページレイアウトを見てみると、99%の拡大率で、上1.9, ヘッダー1.3, 右2.2, 左2.5, 下2, フッター1.3となります。
四隅のゆとりも十分にあります。
これが横に四列に並んでいるのが、別ブックにコピーした時に、破線の改ページプレビューが入る原因でしょうか?
おっしゃる意味は、恐らく、前提として、A4サイズにきちんと入るサイズで設計していなければ、別ブックにコピーした時にずれてしまい、そこまでは、どうしようもありませんと言うように聞こえます。
今のところ
以下のようなソースで、移動させて消すことは出来ました。
■例開始
Dim Sh2 As Worksheet
Dim Pbrk As HPageBreak
Set Sh2 = ActiveSheet
For Each Pbrk In Sh2.HPageBreaks
If Pbrk.Location.Row < 55 Then
Pbrk.DragOff Direction:=xlDown, RegionIndex:=1
End If
Next Pbrk
■例終了
これか、もしくは、最初にアドバイスを下さった方のやり方にするか、考えています。
ご説明の内容は、今ひとつピントきませんが。私の理解の仕方でよろしかったでしょうか?
No.1
- 回答日時:
こんにちは
改ページの位置があらかじめ分かっているのであれば、以下を利用して再設定すればよさそうに思います。
https://msdn.microsoft.com/ja-jp/library/office/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 改ページ 2 2023/03/10 21:29
- Excel(エクセル) 【Excel】エクセルの1シートが2枚に分割されてしまうので印刷プレビューを押して閉 4 2022/12/13 13:12
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- PDF EXCEL ページを指定してPDF出力するVBAを教えてください。 2 2023/02/09 10:27
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのページ区切り(点線)の位置をマクロで取得 ※印刷範囲クリア
Excel(エクセル)
-
ExcelVBA Range クラスの PageBreak プロパティを設定できません。
Visual Basic(VBA)
-
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
-
4
エクセル VBA 水平改ページ位置の変更方法について教えてください。
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
VBAでセルを指定した画像のコピー&ペーストを繰り返したい
Excel(エクセル)
-
9
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
10
PageBreaks.Countと印刷範囲の設定について
Visual Basic(VBA)
-
11
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
12
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
15
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
16
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
17
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
18
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
19
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
20
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのグレーの部分を戻したい
-
EXCEL改ページプレビューのペー...
-
YMM4 で MOV ファイルが読み込...
-
Thunderbirdで印刷およびページ...
-
ページが増える
-
エクセルの縦の幅だけ拡大したい。
-
EXCELで1行の内容を1枚の紙に印...
-
エクセルのマクロで印刷プレビ...
-
【Excel】エクセルの1シートが...
-
ExcelVBA 改ページの横破線を消...
-
Excelで縦を拡大、横を縮小する...
-
Excel ~プリンターがない時で...
-
Excelの「改ページプレビュー」...
-
Excel 複数印刷範囲設定と、印...
-
エクセルでA4 2枚をA3 1枚で印...
-
Excelの改ページ印刷についての...
-
エクセルで点線を引き、印刷す...
-
エクセルのA3横一枚のデータをA...
-
エクセルで印刷範囲以外を灰色...
-
Excelで全ての行単位で改...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL改ページプレビューのペー...
-
Excelのグレーの部分を戻したい
-
エクセルの縦の幅だけ拡大したい。
-
YMM4 で MOV ファイルが読み込...
-
ページが増える
-
エクセルでA4 2枚をA3 1枚で印...
-
Excelの改ページ印刷についての...
-
エクセルで点線を引き、印刷す...
-
エクセルのマクロで印刷プレビ...
-
EXCELで1行の内容を1枚の紙に印...
-
Excelで特定の文字・記号のとこ...
-
エクセルのA3横一枚のデータをA...
-
エクセルで印刷、0.5が1になる。
-
ExcelVBA 改ページの横破線を消...
-
エクセルで、大きく灰色に書か...
-
改ページの2ページ目の作り方
-
Excelで縦を拡大、横を縮小する...
-
【Excel】エクセルの1シートが...
-
エクセル上に貼り付けた画像が...
-
Thunderbirdで印刷およびページ...
おすすめ情報