• 締切済み

EXCEL2007で改ページを見やすく

EXCEL2007で教えてください。 たとえば、こんなシートがあります。 1行目 本年売上 2行目 前年売上 3行目 前年比 4行目 予算 この、4行が「1セット」になっています。 印刷する場合に、ページは「自動的に改行」されてしまいます。 → 3行目と 4行目の間で改行される等 これはちょっとブサイクです。 改行がある場合は、この4行が同じページに入るようにする方法はありますでしょうか?

みんなの回答

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

こんにちは。 VBAでも、なかなか難しいです。 今回のコードは、過去の遺産のコードを元にして作られたもので、Ver4Macro関数を使用しています。Excel 2007 では稼動しますが、Excel 2010 では稼動しないように聞いております。Match 関数を新たに作りましたが、ワークシート関数ですと、揺れ動く記述の場合、ヒットするかどうか微妙です。VBA関数なら、ある程度は調整することは可能です。順番が狂ったら、「手動改行」の位置は狂います。なお、現在は曖昧一致の検証はされていません。 標準モジュールに貼り付け、コマンド・ボタンで呼び出し(Call)したりすればよいと思います。 '------------------------------------------- Sub PageBreaksAdjustments()   'Excel 2010では、作動しません。   Dim dPNum As Long   Dim TotalPage As Long   Dim iP As Long   Dim i As Long, j As Long   Dim myData As Variant   '-------------------------------------------   'ユーザー設定   'カンマ(,)区切りで、空白のないようにリストに入れてください。   Const MYLIST As String = "本年売上,前年売上,前年比,予算"   '-------------------------------------------   myData = Array(MYLIST)      Application.ScreenUpdating = False   With ActiveSheet     If .PageSetup.PrintArea = "" Then       MsgBox "印刷範囲を設定してください。", vbInformation       Exit Sub     End If     .ResetAllPageBreaks     TotalPage = Application.ExecuteExcel4Macro("COLUMNS(GET.DOCUMENT(64))")     dPNum = Application.ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64),0,1)")     For i = 1 To TotalPage       If i = 1 Then         iP = i * dPNum       Else         iP = iP + dPNum       End If       j = VBA_MATCH(.Cells(iP - 1, 1).Value, myData, False)       If IsError(j) Then Exit Sub       If j <> 4 Then         .Cells(iP - j, 1).PageBreak = xlPageBreakManual         iP = iP - j       End If     Next i   End With   Application.ScreenUpdating = True End Sub Function VBA_MATCH(ByVal SearchTxt As String, ArrayData As Variant, Optional Opt As Boolean = False) 'SearchText:検索値, BaseArray():配列データ, Opt. False;絶対一致.True:曖昧一致 Dim sOpt As String Dim i As Variant Dim L As Long Dim U As Long Dim flg As Boolean  If Opt = False Then   sOpt = "*"  L = LBound(ArrayData)  U = UBound(ArrayData)   For i = L To U    If Opt = False Then     If StrComp(SearchTxt, Trim(ArrayData(i)), vbTextCompare) = 0 Then       Exit For     End If     Else     If ArrayData(i) Like SearchTxt & sOpt Then       If flg = False Then        flg = True       End If     Else       i = i - 1       Exit For     End If     End If   Next i  End If  If i > U Then   i = CVErr(xlErrNA)  Else   i = i + 1 - L  End If  VBA_MATCH = i End Function

全文を見る
すると、全ての回答が全文表示されます。
  • suzusan7
  • ベストアンサー率64% (22/34)
回答No.4

こんばんわぁ お望みのことを行うにはVBAが必要になると思います。 2007は持ってないのですが、2002で同様のVBAが動作していたので 2007でもVBAでできるのではないでしょうか? VBAの考え方としては、 1.全ての改ページを解除する。 2.自動改ページを上から順番に条件の合うように   設定していく。 3.上記2をデータの印刷範囲の最下行まで続ける 程度でできると思います。 全ての改ページを解除した段階で、設定されている印刷環境(用紙方向や印刷範囲)や 行見出し等を考慮した自動改ページとなりますので、 各PC毎に、または用紙方向やサイズの変更、プリンタの変更の都度、 VBAを実行する必要があるかもしれませんが、プリンタの違いによる影響はないと思います。 今のところ、3種類のプリンタでですが、問題なく動作していました。 また、用紙方向を変えた後や、行見出しを追加した後でもVBAを実行すると その用紙に合っていて、行見出しも反映された改ページになっていました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

hot0500さん 今日は! ■Excel2007基本講座:改ページと改ページプレビュー↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-print6.html 内容:1.改ページを設定する・2.改ページプレビュー (参照下さい) 改ページを設定する→途中でページを変えたい時に改ページを設定します。改ページは次のページの先頭部分で設定します。 改ページプレビュー→改ページプレビューでは改ページの状態を確認することと改ページ位置を変更することができます。 ステータスバーの[改ページプレビュー]を実行します。

全文を見る
すると、全ての回答が全文表示されます。
  • takasuga
  • ベストアンサー率37% (231/612)
回答No.2

なんらかの方法で自動調整できたとしても、プリンタが変われば印刷範囲が変わりますし無理でしょうね。 そもそもExcelは表計算ソフトなので、印刷まで面倒を見てくれるソフトではありません。

全文を見る
すると、全ての回答が全文表示されます。
  • takasuga
  • ベストアンサー率37% (231/612)
回答No.1

[表示]タブにある[改ページプレビュー]を使用して調整することになります。

hot0500
質問者

補足

ありがとうございます。 プレビューで調整をやっていますが、これはかなり面倒な作業なのです。 なんらか自動的にできる方法はないかと思いまして質問したわけなのです・・・

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel2000で、シート内に何ページかの改行プレヴューがあり月毎任

    excel2000で、シート内に何ページかの改行プレヴューがあり月毎任意で自動ページ選択する方法 例としてシート1に”一覧”シート2に”詳細な利用状況”として シート2に行2ページx列5ページで一覧No.1=利用状況の1ページ目、No2=利用状況の2ページ目と内 容をリンクさせながら改行プレビュー設定してNo.10まであるとしたら、これまでは、毎回シート2利用状 況でページを範囲選択して、選択範囲のみ印刷をしてきたのですが、これをマクロで自動に範囲選択するに は、どの様な方法があるか、教えてもらえないでしょうか。 月によって出すページが違い実際は、100以上を月によって範囲選択して印刷しているものですから、マ クロで、一覧から利用あったら、シート2の方で範囲選択するような方法があればと書き込みました マクロ初心者です 書き込み初で、見にくいでしょうが、よろしくお願いします。

  • 縦長表の外枠に太罫線。改ページごとに外枠をつけるには

    Excel2003です。 縦長の表があります。印刷すると3ページに及びます。 外枠に太罫線をつけています。 印刷すると自動改行され、外枠に太罫線を付けている為、1ページは下の外枠だけが印刷されず、2ページ目は上下とも、外枠なし、3ページは上だけ無し。 改ページごとに太罫線を間に入れていましたが、見栄えも悪く、改行される行が変われば、また罫線を引きなおすのは面倒です。 Excelの設定で、出来ないものでしょうか?

  • EXCEL2000で・・・

    EXCEL2000の操作について教えてください。 月別の支店ごとの売上表を作っています。 A4横でプリントすると20枚になります。 1行目のセルには見出しとして、1月から12月 そして合計を、2行目以降には各支店名を入れて います。 プリント1枚目には、列の見出し部分は当然印字 されますが、2枚目以降にも1行目に見出しを 自動印字する方法を教えてください。 いつも印刷ページの区切りを見ながら、見出しを 入れているのですが、自動でできる手順があると 聞いたのですが、よろしくお願いします。

  • 改ページ枠線を非表示にする(Excel2007)

    Excel2007シート上で「改ページ」枠線の非表示方法についてお教え願います。 1.印刷プレビューしたときに改ページの枠線(=点線)が表示されますが、 2.Excel2003では「ツール~オプション~表示~ウインドウズオプション~改ページ」のチェックをとると可能でしたが 3.Excel2007で可能にするためにはどうしたらいいのですか?  (WinXP)

  • EXCEL2000でページの最後の罫線を印刷時に太線にしたい

    EXCELL2000で数ページにわたる連続した表を作成したシートがあります。  各ページの最初の行には”印刷タイトル”の”行のタイトル”で項目名などを罫線を含めて印刷できますが、各ページの一番下の罫線を細い罫線から太い罫線に自動で変更して印刷したいのです。(はじめからそうしておくと、編集時にセルを挿入した場合などに、その都度罫線を修正する必要があるため。)  説明が難しいですがご理解いただけますでしょうか。 ┏━━━━━━━┓ ┠───────┨ ┠───────┨ ┠───────┨ ┠───────┨ ┗━━━━━━━┛     ↓(印刷すると) ┏━━━━━━━┓ ┠───────┨ ┗━━━━━━━┛ ┏━━━━━━━┓ ┠───────┨ ┗━━━━━━━┛

  • Excel2013 改ページの点線

    Excel2013では、Excel2007(2010は、不明)までは、 標準で印刷プレビューを行なったあとに改ページ位置が破線で 表示されましたが、Excel2013では、破線が表示されずに 枠線が見えなくなります。 標準で改ページ位置を破線で表示する方法はありませんか ファイル → オプション → 詳細設定 → 表示 → 次のシートで 作業するときの表示設定 → 改ページを表示する(K)がグレーアウト しているのと関係ありますか? 関係ある場合グレイアウトを解除する方法がありますか

  • 【Excel2007】印刷タイトルの設定方法

    表を印刷する際、複数枚にわたるため、印刷タイトルの設定をしたいと思っています。 設定の仕方は「ページ設定」→「ページ」のシートを選び、印刷タイトルの「タイトル行」に元表の行を範囲選択すればよいことは知っているのですが、Excel2007で、「ページ設定」から「ページ」のシートで「タイトル行」を選択するまで、どのボタンを押せば行き着くかが分かりません。 「印刷プレビュー」からだと「タイトル行」が選択できないのです。 正しい方法を教えてください。よろしくお願いします。

  • Excel2003 ページ設定の「行のタイトル」について

    Excel2003 ページ設定の「行のタイトル」について Excel2003を使用しており、シートが100近くあるブックがあります。 それぞれのシートはほとんど同じフォーマットで作られています。 シートに「行のタイトル」設定をしたいのですが、 シート全て、同じ行がタイトルとなるので、一括で設定したいのですが、 すべてのシートを選択して、ページ設定 → シートタブを見ると、 行のタイトルが設定できなくなっているので、一括での処理は出来ないのでしょうか? ご教示頂きたく何卒宜しくお願い致します。

  • 複数ページに亘るExcelの集計内容を最終頁最下行に印刷したいのですが

    Excelの集計シートでの合計欄の記載についての質問です。 ある集計データについて1行目から20行目まで表示し(1行につきデータ1件分) 21件以上となった場合は次のページに印刷するというものなのですが、 以下の全てを満たすマクロ処理はないのでしょうか? あるとすればどうすればいいんでしょうか? (1)パソコン画面上に表示されるシートはデータ件数に関わらず1枚とする。 (2)1枚のシートに記載できるデータ件数の上限は99件とする。 (3)1行目は項目名を、2~100行目はデータ本体を、101行目は合計欄とする。(全て固定) (4)印刷の際、1枚の紙に印刷できるデータ件数は20件までとする。 (6)印刷のフォーマットは、1行目に項目欄、2~21行目にデータを、また最終ページの  22行目には合計欄を印刷するものとする。 (7)-1 データが20件以下の場合、1行目に項目欄を、2行目以降にデータを、  22行目に合計欄及び合計データを印刷する。 (7)-2 21~40件以下の場合は1ページ目には項目欄と20件目までのデータを、  2ページ目には項目欄及び21件目以降のデータと全データの合計データを印刷する。 (7)-3 (7)-2のように、印刷が複数ページに亘る場合、最終ページ以外については  1行目に項目欄、2~21行目にデータを印刷し、最終ページについては1行目に項目欄、  2行目以降に残りのデータ、22行目に全ページの合計データを印刷する。 (8)最終ページ以外の22行目は空白とする。(合計欄も印刷されない) (9)データ件数が20で割り切れない場合でも、最終データ記載行と合計データ記載行の間の  余白行は埋めず、必ず最終ページの22行目に合計欄及び合計データを印刷するものとする。 以上、よろしくお願いいたします。

  • Excel2003での印刷の質問です。

    Excel2003での印刷の質問です。 各ページの先頭行に、列の名称を印刷するには、印刷設定のシートにて 設定できますが、ページの最下行にも、一定の情報を印刷したい考えます。 このようなことは、可能でしょうか? 例 --------------- aaaa bbbb cccc <--各ページの先頭行に常に胃印刷する --------------- x x x x -------------- 1234567890 <--各ページ最下行に常に印刷する -------------- よろしくお願いいたします。

専門家に質問してみよう