- ベストアンサー
VBAでの改ページ位置の変更
こんばんわ。 検索したり、自分でも考えてみたのですが、壺にハマっているようで、 どなたかお助けください。 Excelで以下の様な表があります。 営業所コード 部署 氏名 ・・・(横幅はA4に収まるサイズです) 001 001 AAA 001 002 BBB (コードに変化があるたびに、1行空白があります。) 002 001 CCC [------------------------] O 003 001 DDD 003 001 DDD <------------------------> X 003 002 EEE このような表が縦にいくつも並びます。 印刷時にA4サイズの用紙からはみ出した部分について、 上記の「003」のような位置(Xの位置)に自動的に入ってしまう改ページを防ぎ、 003の一番上の行の上部(Oの位置)で改ページしたいのです。 何か良い方法はないでしょうか? 縦方向は集計のたびに変位するので、特定のルール化ができなくて困っています。 改ページ位置(行数)を取得して、その上のデータの可否をチェックしていくというのが、 Betterな方法なのでしょうか? ページ数で20~30ページになるので、このループ処理が良いのかどうか。。。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- エクセルVBAで印刷時の改ページ探しは出来る??
教えてください。 改ページプレビューで自動で改ページされた表(何ページもある)を 区切りのいいところで改ページを入れなおす マクロを作りたいのです。 区切りのいい所のセルには*が表示されているのですが そのセルの下の行で改ページを入れなおしたいのです。 改ページプレビューで自動で設定された改ページの位置を 探すのには、何か良い方法はあるのでしょうか?? 宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- ExcelVBAの改ページの区切り位置が変更不可
下記のようなコードで印刷プレビューを出して印刷するようにしたいのですが、改ページの位置が思い通りに変更されません。 3ページに印刷で、A19(B19)の行から2ページ目とA37(B37)の行から3ページ目にしたいのですが、印刷プレビューを見るとA20の行から2ページ目でA38の行から3ページ目になってしまいます。 HPageBreaks.Add Before:=Range("A19")←ここを色々違うセルに変えたり別のコードにかえたりしても、まったく反映されません。何かが邪魔をしているのでしょうか? どうしたら、任意の位置で改ページできるでしょうか?お願いいたします。 Sub 印刷プレビュー設定() Dim s As Worksheet Set s = ThisWorkbook.ActiveSheet With s '列非表示 .Columns("I:I").Select Selection.EntireColumn.Hidden = True 'ワークシートを選択、印刷範囲指定する .Select ActiveSheet.PageSetup.PrintArea = "$B$1:$O$54" '余白設定 .PageSetup.TopMargin = 0 .PageSetup.BottomMargin = 0 .PageSetup.LeftMargin = 0 .PageSetup.RightMargin = 0 '水平位置の中央へ .PageSetup.CenterHorizontally = True '垂直位置の中央へ .PageSetup.CenterVertically = True '用紙を横向きに設定 .PageSetup.Orientation = xlLandscape '用紙サイズを設定 .PageSetup.PaperSize = xlPaperA4 '印刷範囲を指定ページに収めて印刷プレビューを表示する .PageSetup.Zoom = False '拡大縮小倍率をFitToPagesの設定に収める .PageSetup.FitToPagesTall = 3 '縦の枚数 .PageSetup.FitToPagesWide = 1 '横の枚数 ActiveSheet.HPageBreaks.Add Before:=Range("A19") ActiveSheet.HPageBreaks.Add Before:=Range("A37") .PrintPreview End With End Sub
- ベストアンサー
- Excel(エクセル)
- VBによる改頁行の罫線変更
EXCELで外枠は太線、各行の区切り線は細線を 使用した表を作っています。 これがかなり大きな表ですので、印刷すると かなりの枚数になるんですが、各ページの最終行 (下の枠線)は当然細線になって、上、右、左の 太い枠線とのバランスが悪くなってしまいます。 改頁される行の区切り線のみ手作業で 太線に変更していってもいいのですが、 行を挿入した時とか行の高さを変更したときに ズレてしまって大変です。 改頁行の罫線のみ太線に変更するような VBを作成することは可能でしょうか? ご教示いただけましたら有り難いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- Excel 改ページのVBAうまくいかないです
助けてください。EXCEL2000を使用しています。 マクロを組んでいるのですが、改ページがうまくいきません。 マクロ実行前の状態では、ページ設定で、用紙が「A3」の「縦」で拡大縮小が「79%」、データの区切りのいいところに何箇所か改ページが設定されています。 そこで、マクロを使って、A3サイズ、用紙を横、拡大縮小92%にして、尚かつ区切りのいいところ(毎回印刷範囲、区切りたいセルの位置は決まっている)で印刷できるようにしたいです。 印刷範囲は A1:P63,A64:P126,A127:P193,A194:P237,A257:P329, A330:P357,A368:P397,A401:P462 で設定したいです。 改ページしたい行を ひたすら ActiveSheet.HPageBreaks.Add Before:=Range("セル番地") で記述したのですが、 余計なところにも改ページ線ができてしまいました。(121行目の下、 351行目の下) このいらない改ページ線は、用紙を横にして、拡大縮小を92% をした時点で、ついてしまった線のようです。 余計な改ページ線を削除したいです。 なお、マクロは自動記録しかわかっておらず、 意味がわかっていないです。 お手数ですが お分かりになる方、 わかりやすくお願いいたします。
- 締切済み
- オフィス系ソフト
- エクセルの改ページを自動で行う方法
エクセルの質問です。 今、在庫表をエクセルで作っています。 単純化すると以下のような形です。 棚番号|商品名|商品数 ------+------+------ 1 |AAA |5 1 |BBB |6 2 |CCC |10 2 |DDD |2 3 |EEE |1 3 |FFF |2 3 |GGG |3 これを印刷するときに 棚番号が同じものをまとめて印刷したいと思います。 (下記のように3枚に分かれればいいです。) 棚番号|商品名|商品数 ------+------+------ 1 |AAA |5 1 |BBB |6 棚番号|商品名|商品数 ------+------+------ 2 |CCC |10 2 |DDD |2 棚番号|商品名|商品数 ------+------+------ 3 |EEE |1 3 |FFF |2 3 |GGG |3 このような形です。 ページ番号は通しの番号を振りたいと思います。 改ページを手動で入れていってもいいのですが、実際は棚が200くらいあるため合理的ではないです。 棚番号が変わったら自動で改ページするような機能はないでしょうか。
- ベストアンサー
- オフィス系ソフト
- EXCELで改頁される行を太線にするには?
EXCELで外枠は太線、各行の区切り線は細線を 使用した表を作っています。 これがかなり大きな表ですので、印刷すると かなりの枚数になるんですが、各ページの最終行 (下の枠線)は当然細線になって、上、右、左の 太い枠線とのバランスが悪くなってしまいます。 改頁される行の区切り線のみ太線に変更していって もいいのですが、行を挿入した時とか行の高さを 変更したときにズレてしまって大変です。 印刷した時に自動的に改頁される行のみ太線に なるような機能はないのでしょうか? もしくはVBA等でそのような機能を作成することは 可能でしょうか? ご教示いただけましたら有り難いです。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- EXCEL、マクロ-改ページ行番号の取得方法を教えてください
EXCELで作成した表を印刷したいのですが、表が縦長で複数ページにわたります。 そこで各ページの下端にそれぞれ罫線を挿入するマクロを書きたいのですが、 改ページ位置の取得方法がわかりません。各ページの上端行でも下端行でも良いので 行番号を取得する方法はないものでしょうか? どなたかご教授願います。 マクロ全体としては下記を考えています。 1.データの下端行の取得 2.印刷範囲の設定(横1ページ×縦複数ページ) 3.最初の改ページ位置の取得 4.ページ下端セル行の下に罫線を入れる 5.次の改ページ位置の取得 6.以下、データ最下端行まで繰り返し (各行のセルの高さは一定ではないです。)
- ベストアンサー
- Visual Basic
- Excelの改ページ 同シート内で複数の改ページの設定
同じシート内で多くの改ページを設定しなければならない場合 1ページ毎に設定していかないといけないのでしょうか? それとも改ページしたいデータで並び替えて、同データのある行で改ページを分割していくのは可能でしょうか? たとえばA列に上から111112223333344455555とある場合に自動的に1と2の間、2と3の間、3と4の間、4と5の間にそれぞれ自動的に改ページを入れたいのですが・・・
- ベストアンサー
- オフィス系ソフト
- FORTRANで作成したテキストファイル中で改行・改頁制御する方法を教えてください
FORTRAN90で数表をテキストファイルに書き出すプログラムをつくっています。テキストエディタから印刷したときに改行や改頁ができるように改行コードや改頁コードをファイルに入れたいのですが、 その記述の仕方がわかりません。 たとえば下記のような場合、どのような記載をすればよいのでしょうか? DO I=Q,R WRITE(9,"(I4,7(1X,A))") I,(A(J,I),J=O,P) END DO どなたか詳しい方、教えていただけませんでしょうか。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
お礼
Wendy02さん、ご報告が遅れて申し訳ありませんでした。 その後、前回のマクロにて実験を重ねてみました。 やはり、大きさの変更があるからでしょうか、自動改行位置が不規則になることがありまして、 結論は、用紙の仕様を変更してもらい、 縦方向のみの自動改行とすることでクリアとしていただきました。 納期の関係で”遅れ”の方がマズイと・・・(^^;) せっかくWendy02さんに教えていただいたこともありますので、 運用するかどうかとは別に、個人的に処理を再度検討していこうと考えています。 お礼が遅れておきながらですが、 また、別の件で見かけることがありましたら、 回答を付けていただけると助かります。 それにしても、新しくなったOKWaveは・・・^^;