- ベストアンサー
エクセルの改ページ設定でプリンタ変更時の改ページ位置の変化を解決する方法
- エクセルで自動的に行われている改ページ設定で、プリンタを変更した場合に改ページ位置が変化してしまう現象が発生しています。改ページの位置を手動で指定する方法がありますが、大量のファイルを取り扱っている場合には手間がかかります。
- そのため、改ページで自動的に行われている部分を一括で手動指定に変える方法があると解決できるのではないかと考えています。マクロを使用することも一つの方法ですが、実施可能かどうかは不明です。
- 他にも改ページ位置を自動ではなく手動で指定する代替案や、改ページ位置が変化しないプリンタの選択などがあるかもしれません。アドバイスをいただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
この辺の事情は難しいですね。 「エクセルの謎」といった記事に載るようなことです。 パソコンは変えてないのか(プリンターだけ取り替えたのか) 余白設定はプリンター(ドライバ)を変えることで変わってないか。 (標準)フォント設定は変わってないか。 セル幅は変わってないか。(左右=水平方向が。次ページにはみでるとして) などチェックしてみてください。 ーーー すべて同じ形式の表ですか(ある表をテンプレートのようにして、作った表ですか) ーー >改ページで自動(青い点線)の部分を一括で手動(青い実線)に変える方法でもあればいいのではと考えているのですが 手動設定のようなもので一括して変えるというのは、そういう仕組みはない。複数シートを作業グループにすると改ページ線が動かなかった。 ーーー 印刷で1ページに納めるという設定を試してみてください。 FitToPagesWide 改ページ区切り線までを縮小して1ページに納めてくれないかな。全データ1ページに納めるかな。未確認ですが。 ーー >マクロとかになってくるんでしょうか どのシートの表も、どのブックの表も今J列で改ページしているが、K列にづらすので済むなら 改ページ位置を変える操作をして、マクロの記録をとると Sub Macro1() Set ActiveSheet.VPageBreaks(1).Location = Range("K1") End Sub で移動させられるようなので使えると思う。 VPageBreaks(1)の1は左からの改ページ線の1番目を捉えている。 これをpersonal.xlsに保存し、ブックのオープン時に全シートに渉って実行して設定すれば、一括で変わるように見えるが、1シートづつの手作業での改ページ線の変更をプログラムでやっただけ(マクロってそういうものです)。(For Each sh In Worksheetsでやる) シートごとに第1改ページ線の位置がばらばらだと設定しにくい。 ーー 各シートについて、1列だけ改ページ線を、右にづらすなら(少しのづれで、1列ずらせばうまくゆく場合) Sub Macro1() Set ActiveSheet.VPageBreaks(1).Location = Range("K1") MsgBox ActiveSheet.VPageBreaks(1).Location.Column End Sub を実行すると11(K列の左に)になるから、+1して12列の第1行を).Location に設定すればよいかも. 一般化するなら x=ActiveSheet.VPageBreaks(1).Location.Column Set ActiveSheet.VPageBreaks(1).Location = cells(1,x+1) ーーー ともあれVBAの経験が要るし、実際やってみないとわからない。 上記の例は並みのVBA解説書の例にも余り載ってないケースですから。
お礼
ご回答ありがとうございます。 当初印刷時に拡大、縮小して合わせようとしたのですがどうしても微妙に縦横のどちらかを合わせようとすると、どちらかがずれるので悩みましたが、プリンタを変えたときにページ設定でもともとA4用紙だったのをユーザー定義用紙にして数字を少しいじったところほかを変えることなく同じように納まるようになりました。 お手数おかけしました。