• ベストアンサー

エクセルの別シートにページを通しで付けるには?

検索しても、同様の質問が見つからないので質問いたします。 エクセルにて、1ファイル内に収まっている複数のシートにページ番号を通しで振るには、どのような設定をすればよろしいのでしょうか。 ・全てがA4縦です。 ・各シートには1~5ページが存在します。 ・シート表示の左から順にページを付けたい *例えば。1ファイルに3シートが存在する場合に 一番左のシートに3ページ、2番目に4ページ、3番目のシートに5ページが存在していれば、3番めのシート内の各ページには、8、9、10、11、12のページ番号を設定したいとのことです。 その後2シート目と3シート目の間に1ページのシートを挿入すると、4シート目(挿入前の3シート目)の各ページは9、10、11、12、13と自動で設定変更となるようにしたいのですが、方法はあるのでしょうか? 実際は100シートぐらいページを設定したい。 更にできるならば、その目次を作りたいのですが、それも判れば教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

>エクセルにて、1ファイル内に収まっている複数のシートにページ番号を通しで振るには、 >どのような設定をすればよろしいのでしょうか。・・・実際は100シートぐらいページを設定したい。 実現するには、特に設定は必要ありません。操作手順だけの問題でしょう。 印刷したいシートには全てページ番号が設定されているとします。 印刷する時、印刷したい一番左のシートタブをクリック、次にShiftキーを押しながら最後のシートのタブをクリックして印刷したいシートを全て選択します。(Ctrlキーを使う方法もあります) このように選択した状態で印刷(またはプレビュー)すれば、全シートで通しのページ番号になります。 上のように、全シートを印刷する場合は簡単にできます。シートを部分的に印刷しなくてはならない時が問題でしょう。 例えば、何か問題があって、2つ目のシートだけを開始を4ページ目として印刷しなくてはいけない場合は、   プレビュー→設定でページ設定ダイアログのフッタ(またはヘッタ)の編集ボタンを押して    &[ページ番号] ページ を &[ページ番号]+3 ページ   のように編集して印刷します。印刷が終わったら設定を元に戻しておきます。 この辺を自動化するにはマクロを作る必要があるでしょう。下のようにして頁総数が把握できれば簡単ですが、どのような操作で印刷するか分からないと書けそうにありませんね。5番目と15番目などを任意に選んで印刷するようにしたいとか・・・ >更にできるならば、その目次を作りたいのですが、それも判れば教えて下さい。 マクロを作って見ました。『目次作りたい』だけでどんな内容かわかりませんが・・・ 目次といっても、シート名と頁数を出しHyperlinksを設定しているだけです。目次用シートを挿入し、シート名『MENU』を付けます。 内部で使っているHPageBreaksは不具合があるという話もあります。Excel95のExcel4Macroが使えるかどうか分からないのでこちらを使ってみました。(Excel2000で稼動確認しましたが自信なしです) ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入します。 出てきたコードウインドウに下記マクロをコピーして貼り付けます。 ここから。printMenuMakeを実行すればシートMENUに頁数を書き出すはずです。 ↓ Sub printMenuMake()   Dim ws As Worksheet 'シート   Dim wsMenu As Worksheet '印刷メニューを書くシート   Dim hpBreak As Integer '横の改ページ数   Dim vpBreak As Integer '縦の改ページ数   Dim prtPage As Integer '印刷ページ数   Dim rgMenuTop As Range 'シート内容を書き出す位置   Dim rw As Integer '行カウンタ   Set wsMenu = Worksheets("MENU")   Set rgMenuTop = wsMenu.Range("C5")   rgMenuTop.Range("A1:D500").ClearContents   For Each ws In Worksheets     If ws.Name <> "MENU" Then       If ws.UsedRange.Address <> "$A$1" Then         hpBreak = ws.HPageBreaks.Count '横の改ページ数取得         vpBreak = ws.VPageBreaks.Count '縦の改ページ数取得         If vpBreak = 0 Then           prtPage = hpBreak + 1         Else           hpBreak = hpBreak + 1           vpBreak = vpBreak + 1           prtPage = hpBreak * vpBreak         End If         With rgMenuTop           .Offset(rw, 0) = rw + 1           .Offset(rw, 1).Select           wsMenu.Hyperlinks.Add Anchor:=Selection, Address:="", _             SubAddress:="'" & ws.Name & "'" & "!A1", TextToDisplay:=ws.Name           .Offset(rw, 2) = prtPage           .Offset(rw, 3) = "ページ"           rw = rw + 1         End With       End If     End If   Next End Sub

noname#8581
質問者

お礼

詳しい回答ありがとうございます。 目次のマクロは、感動ものです。 ページ設定は、簡単にできるものなのですね。 目次の方は、多ページの場合かなり助かりそうです。 早速試してみたいと思います。

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

その他の回答 (2)

  • Vargas
  • ベストアンサー率45% (9/20)
回答No.2

ファイル→ページ設定のページタブ内の下部の 「先頭ページ番号」で設定できます。 具体的には1シート目のページ設定では1と入力してください。 2シート目以降はデフォルトのまま「自動」にして下さい。 これで、印刷ダイアログにて「ブック全体」か、シートを全て選択後、「選択したシート」により、印刷を行う事でご希望の通し番号のページにて出力できます。 尚、2番目の質問の目次についてですが、おそらくWordの様なイメージだと思いますが、私はやった事がありません。私が、Excelでドキュメントを作成した場合はハイパーリンクをいつも使っています。ちょっと、面倒ですが、100シートもある場合は、すぐにそこに飛べるので楽です。 具体的には、ある目次用のシートを用意して、目次を挿入したいセル上で右クリックし、ハイパーリンクを選択します。 出てきたメニューの左に「このドキュメント内」というボタンがあるのでそれをクリックします。 すると、真中のリスト上に存在するシートが全て出てきますので、それを選択して、上部の「表示文字列」に表示させたい表題を入力すれば、OKです。 これを目次にしたい分だけ繰り返します。 でも、100シートもあると、大変ですね。

noname#8581
質問者

お礼

ありがとうございます。 ページ設定がこんなに簡単に出来ると思いませんでした。 目次の方は、試してみます。この方法はページ数が少ない場合は簡単なようですね。ページが多い場合は#3の方がマクロも紹介してくれてますので、いろいろ試して見ます。

すると、全ての回答が全文表示されます。
  • hiromuy
  • ベストアンサー率27% (103/370)
回答No.1

こちらをどうぞ↓ エクセルの技に関するサイトです。 ページに関しては、これで解決できます。 目次については、どのような要領で作りたいのでしょうか?

参考URL:
http://www2.odn.ne.jp/excel/waza/print.html#SEC15
noname#8581
質問者

お礼

早速の回答ありがとうございます。 いろいろな技が書いてあって便利なサイトですね。 目次の方は、#2、3の方の回答でどうにかなりそうです。

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

関連するQ&A