• 締切済み

Excel 改ページのVBAうまくいかないです

Wendy02の回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

#1 の方のご説明で、出来たのですか? PrintSettingTest1 は、出さないことにします。 私が、ふと心配に感じたのは、ページの物理的限界を超えて、1ページを設定させることは不可能だと思ったから、一旦、標準ページ行数を取り出して、それで範囲をチェックすることを考えましたが、取り越し苦労のようです。 Sub PrintSettingTest2() Dim myPagesArray As Variant, i As Long Dim strRng As String  'ユーザーのページ設定  Const myPages As String = "A1:P63,A64:P126,A127:P193,A194:P237,A257:P329,A330:P357,A368:P397,A401:P462"  With ActiveSheet   If InStr(myPages, ":") = 0 Then    MsgBox "1つ以上のセルを記述してください。", vbCritical    Exit Sub   End If   'ページの配列作成    myPagesArray = Split(myPages, ",")   .PageSetup.PrintArea = ""   For i = LBound(myPagesArray) To UBound(myPagesArray)    strRng = Mid$(myPagesArray(i), InStr(myPagesArray(i), ":") + 1)    .HPageBreaks.Add .Range(strRng)   Next i  End With End Sub

charodesu
質問者

補足

回答ありがとうございます。 一応、No1さん のやり方で、できたのですが、 問題はありますでしょうか。 すみません。あまり意味がわかっていません・・・ Wendy02さん のやり方の方も 試してみたいのですが、上記の コードを コピーペーストして大丈夫ですか?(VBAがわかっていません) ちなみに 上記のコードだけを マクロとして記述したら、改ページが一切なしの 一枚 として仕上がりました。 このコードの下に、ページ設定や 改ページの記述すればよろしいのでしょうか。 しかし、それをやってみたところ、マクロがうまく実行できなくてエラーになりました。 たびたび申し訳ございませんが、教えてください。 With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = _ "$A$1:$P$237,$A$257:$P$357,$A$368:$P$397,$A$401:$P$462" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.78740157480315) .RightMargin = Application.InchesToPoints(0.196850393700787) .TopMargin = Application.InchesToPoints(0.78740157480315) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0.078740157480315) .FooterMargin = Application.InchesToPoints(0.15748031496063) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA3 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 92 ActiveSheet.HPageBreaks.Add Before:=Range("A64") ActiveSheet.HPageBreaks.Add Before:=Range("A127") ActiveSheet.HPageBreaks.Add Before:=Range("A194") ActiveSheet.HPageBreaks.Add Before:=Range("A238") ActiveSheet.HPageBreaks.Add Before:=Range("A330") ActiveSheet.HPageBreaks.Add Before:=Range("A358") ActiveSheet.HPageBreaks.Add Before:=Range("A398") ActiveSheet.HPageBreaks.Add Before:=Range("A463") End With End Sub

関連するQ&A

  • エクセルVBAで印刷時の改ページ探しは出来る??

    教えてください。 改ページプレビューで自動で改ページされた表(何ページもある)を 区切りのいいところで改ページを入れなおす マクロを作りたいのです。 区切りのいい所のセルには*が表示されているのですが そのセルの下の行で改ページを入れなおしたいのです。 改ページプレビューで自動で設定された改ページの位置を 探すのには、何か良い方法はあるのでしょうか?? 宜しくお願いいたします。

  • EXCELで改ページを1行ずつ連続で入れるには??

    『改ページが1行毎に設定されてしまう』(ぱぱ) http://www.excel.studio-kazu.jp/kw/20061130163202.html エクセル 改ページを設定する https://www.tipsfound.com/excel/07003 『400行くらいのリストを印刷』(nana) http://www.excel.studio-kazu.jp/kw/20031007195250.html Excelで全ての行単位で改ページ https://oshiete.goo.ne.jp/qa/2470107.html マクロつくってみました With ActiveSheet .ResetAllPageBreaks ' 範囲がわかっている場合 ' For Each c In Range("A2:A500") ' ' A列2行~データがはいっている行まで For Each c In Range("A2", Range("A65536").End(xlUp)) .HPageBreaks.Add Before:=c Next End With --------------------------------------------------------------- これで 2行目から500行目までガシガシ改ページが入る --------------------------------------------------------------- With ActiveSheet .ResetAllPageBreaks For Each c In Range("A2:A500") .HPageBreaks.Add Before:=c Next End With (`・ω・´) 上記のようなマクロを実行しなければ出来ませんか? 印刷範囲を縮小表示して1ページの記載内容を減らして1ページを減らし 1行ずつ表示する方法はできないでしょうか? アドバイスよろしくお願いします。

  • エクセルの印刷について

    エクセルの印刷についていつも困っているので質問します。 例えば   A   B    C 1  名前  住所  電話番号 2  山田  山田町 12-3456 3  田中  田中町 1-23456 4  鈴木  鈴木町 123-456   といった表があるとします。A4の用紙に印刷したい場合 このような表を印刷プレビューで表示するとなると、 左上の方に表示され、 設定で拡大縮小機能を使い大きくする必要があります。 しかしセルを大きくしたり拡大縮小機能や 改ページプレビューを使わずに 自分の入力したセルだけ 表示する方法があれば教えてください。 また、VBAでも可能でしょうか?

  • エクセルVBA

    エクセル2003です エクセルの印刷するマクロをおしえてください *A列からQ列までで行は1~300で伸縮します  最終行をA5より下のA列のセルに値が連続で入っている最後が最終印刷範囲行とします *罫線ありです *1ページを30行とします *2ページ目からの先頭行に(A4:Q4)を印刷に入れたい マクロで印刷設定をした事がないのでさっぱりわかりません *ヘッダーとフッダーも可能でしょうか? 出来れば説明付きでよろしくお願いします

  • エクセル ページの大きさに合わせる

    エクセルで表等を作った時のことです。 すべて出来上がって、印刷プレビューで見た時に かなり用紙の大きさに差があったときに 一発で用紙の大きさに合わせる方法ってありますか? 今は地道に行の高さや、列の幅を調整してサイズ合わせをしています。 拡大/縮小:○%というのがあるのは知っているのですが 横はページがはみ出していて、縦は短すぎといったようなとき 横は縮小して、縦は拡大して、自動でページにぴったり合わせてくれるととても楽なのですが、 そういった機能はありますか?

  • エクセル2003 縮小を変えると勝手に改ページ

    エクセル2003を使っています。 印刷範囲を設定し、縮小率46%でA4-1枚に印刷していましたが、もう少し大きくして4枚で印刷したいと思っています。 そこで、ページ設定画面から縮小率80%に変えたところ、ページの半ば頃から1行ごとに青い点線の改ページ記号が出来てしまい、印刷枚数は実に82枚にもなってしまいました。 青い点線をドラッグして、改ページ記号をとってみましたが、今度は縮小率が勝手に20%に変わってしまいます。 どうすれば、うまく4枚で印刷できるでしょうか。 明日中にプリントアウトしなければならず、大変困っています。よろしくお願いします。

  • Excel 2000 印刷範囲

    改ページプレビューで印刷範囲を拡大しようとドラッグすると、「用紙サイズに対して余白の値が大きすぎます。」というメッセージが出てきてしまい、印刷範囲を示すラインが各セルに細かく指定されてしまいます。 明らかに用紙サイズよりも大きい範囲ということもなく、1・2行の差でもこのメッセージが出てきてしまいます。 ページ設定の拡大縮小で行っても、印刷範囲が広がりません。 他に印刷範囲の拡大の仕方はありませんでしょうか? 宜しくお願いします。

  • Excelの印刷範囲が・・・

    いつも通り印刷しようとプレビューを見たら、 突然ページが2枚になっていました。 印刷設定はA4横、拡大/縮小100%、余白は全て0です。 改ページで確認したところ、印刷範囲が 45行目から46行目になっていました。 46行目には何もないので Excel側で印刷範囲を強制的に変えたのでしょうか? 今のところ行った対処法です。 ・印刷範囲のクリア→変わらず ・全ての改ページ解除→変わらず ・46行目全体の削除→変わらず 印刷範囲を45行目に設定すればいいのですが、 この方法だと印刷範囲指定をしたことになります。 お客様に納品するものなので、それはできません。 また、ページを横1×縦1に設定すれば1ページになりますが、 拡大率が98%になってしまいます。 何とか今までのように1ページに戻したいです。 原因にお心当たりの方、回答お願いします。

  • EXCEL 複数の印刷範囲毎にページ設定をしたい

    OS:Win XP Pro Office:Excel2002 1シート内に異なる範囲の印刷範囲を設定しました。 改ページプレビューにしてみると、各設定した範囲には「1ページ」「2ページ」と表示されています。 そこで印刷をすると同じ縮尺の表が印刷されます。 ページ設定の「拡大/縮小印刷」は「1×1ページ」に指定してあります。 用紙はA4で横置きなんですが、列が多いページに合わせて尺度が決まるようで、列が少ないページには余白が多くなってしまいます。 出来れば、各ページの尺度は異なっても構わないので出来るだけ1枚に大きく印刷したいのです。 各ページ毎に「ページ設定」が出来れば良いのですが、シート毎みたいです。 同じシート内の別の印刷範囲で、異なったページ設定(用紙サイズや尺度など)は出来ませんか?

  • EXCEL VBA----改ページ設定

    帳票を発行し、印刷するところまでの処理で下記のような改ページ設定をしたいのですが 良い方法がありましたら、お教え下さい。 帳票の用紙→A3横 1~10行目までを印刷の行タイトルに設定 データは12行目から開始 各列にはオーダーNo.、品名等が並び 1オーダーNo.を1単位として、1単位が終われば罫線を引く。(設定済) 1単位の行数は、単位によってバラバラ。 オーダーNo.の列は、次のオーダーNo.まで空白 総行数が1ページの行数(現状65行)を超えた時、 通常のままでは単位の途中で改ページしてしまうので これをうまく改ページしたい。 総ページが3になる場合も有り得る。 とてもわかり辛いと思いますが、よろしくお願いします。