• 締切済み

Excelでのページ連番付与方法

Excelでのページ連番付与方法 たくさんのシートがあるファイルがあります。 1シートのページ数は1ページであったり複数ページであったり色々です。 ファイルを印刷する際、選択したシートのフッターにページ連番を付け、なおかつ複数ページあるシートには枝番をつけたいのですが、可能でしょうか? 例)シート1  1ページ → 1    シート2  3ページ → 2-1/3 2-2/3 2-3/3   シート3  2ページ → 3-1/2 3-2/2   シート4  1ページ → 4   シート5  4ページ → 5-1/4 5-2/4 5-3/4 5-4/4 という感じでフッターに表示させたいと思っています。 よろしくお願いします。

みんなの回答

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.4

>ブック内のシートすべてを印刷するというマクロ 以下のようなマクロになります。 Sub 印刷()  Dim i As Long    ThisWorkbook.Activate    For i = 1 To Worksheets.Count   Worksheets(i).PrintOut  Next i End Sub >再度全部印刷するのは・・ シートを1つずつ印刷するときは、「シート内のページ番号/シート内のページ数」が印刷されます(通常の印刷手順で出来ます)。 しかし、「作業グループ」を設定して印刷したり、印刷の設定で「ブック全体」を選んで印刷すると、ご要望通りにはなりません。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.3

>選択したシートの中で複数ページあるものの総枚数になっているのです。 >それぞれそのシートだけの分母にしたいのですが・・。 いろいろを試してみた結果、複数シートを一度に印刷するとそのようになってしまうようです。Excelの仕様上、回避が難しそうです。 シート一つ一つ印刷するなら大丈夫なようです。 ブック内のシートすべてを印刷するのなら、マクロで何とかなりそうです。 特定の1つのシートの印刷ならば、通常の印刷で出来ます。 問題は、「特定の複数シート」を印刷したい場合です(シート1つ1つの印刷では大変だという場合)。使用者に入力を求めますので、エラーチェックをきっちり行わないと、間違った入力でエラーが出てしまいます。 …自分自身や、特定の人しか使わない場合には、何とかなるのですが、  数人以上が使うような場合にはマクロの方にも対策が必要です。

jze00521
質問者

補足

色々試していただきありがとうございます。 特定の人しか使わない予定ですし、ブック内のシート全てを印刷することにします。 印刷した後で変更とかあった場合、再度全部印刷するのは・・と思って色々な方法を考えていたのですが、やっぱり無理なようですね。 ブック内のシートすべてを印刷するというマクロでお願いしたいのですが・・。 何度もややこしいお願いをして申し訳ありませんが、よろしくお願いします。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.2

>マクロか何かで一度に設定できれば・・ マクロならば以下の様になります。ただし、自動更新でないので、印刷前にマクロを実行する必要があります。 「Workbook_BeforePrint」に入れておけば、印刷前に自動的に実行出来ます。 ポイントは ・Worksheets.Count でワークシートの数が変わっても対応します ・ページ数を直接カウントできないので「ページ区切り」をカウントします です。 Sub ページ設定() Dim i As Long Dim TatePage As Long Dim YokoPage As Long Dim TotalPage As Long ThisWorkbook.Activate For i = 1 To Worksheets.Count  If Worksheets(i).HPageBreaks.Count = 0 And Worksheets(i).VPageBreaks.Count = 0 _   Then    Worksheets(i).PageSetup.CenterFooter = i   Else    Worksheets(i).PageSetup.CenterFooter = i & "-&P/&N"  End If Next End Sub

jze00521
質問者

補足

ありがとうございます。 早速試してみたのですが、複数ページの場合の枝番の分母部分が 選択したシートの中で複数ページあるものの総枚数になっているのです。 それぞれそのシートだけの分母にしたいのですが・・。 そういうことはできないのでしょうか? あとは完璧だったのですが・・

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.1

こんばんは フッターの設定で、シート2ならば、 2-&[ページ番号]/&[総ページ数] で出来ます(シート3ならば「2-」の部分を「3-」にします)。 ただし、各シートでの設定するなります。 シート名を「シート1」「シート2」…ではなく、「1」「2」… としておけば、以下のように設定できます。 &[シート名]-&[ページ番号]/&[総ページ数] 複数のシートに一括で設定するには、「作業グループ」という機能を使います。 作業グループは以下の手順で設定できます。  1.左端のシートの見出しを選択   2.キーボードのShiftを押しながら右端のシートの見出しを選択 これで、すべてのシートが選択されます。 この状態でフッターの設定をするとすべてのシートに反映されます。 作業グループを解除の手順は、 シート見出しの上で、マウス右クリック-作業グループ解除 です。

jze00521
質問者

補足

早速のご回答ありがとうございます。 希望としては、ページが1ページしかないシートに関しては枝番は表示したくないのです。 そして、シート名も1、2・・には変更できないのです。 シートがたくさんあるので、個々に設定するのはとても大変かと・・ そこでできればマクロか何かで一度に設定できれば・・と思っています。 よろしくお願いします。

関連するQ&A