- 締切済み
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 という感じでフッターに表示させたいと思っています。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- rukuku
- ベストアンサー率42% (401/933)
>ブック内のシートすべてを印刷するというマクロ 以下のようなマクロになります。 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)
>選択したシートの中で複数ページあるものの総枚数になっているのです。 >それぞれそのシートだけの分母にしたいのですが・・。 いろいろを試してみた結果、複数シートを一度に印刷するとそのようになってしまうようです。Excelの仕様上、回避が難しそうです。 シート一つ一つ印刷するなら大丈夫なようです。 ブック内のシートすべてを印刷するのなら、マクロで何とかなりそうです。 特定の1つのシートの印刷ならば、通常の印刷で出来ます。 問題は、「特定の複数シート」を印刷したい場合です(シート1つ1つの印刷では大変だという場合)。使用者に入力を求めますので、エラーチェックをきっちり行わないと、間違った入力でエラーが出てしまいます。 …自分自身や、特定の人しか使わない場合には、何とかなるのですが、 数人以上が使うような場合にはマクロの方にも対策が必要です。
- rukuku
- ベストアンサー率42% (401/933)
>マクロか何かで一度に設定できれば・・ マクロならば以下の様になります。ただし、自動更新でないので、印刷前にマクロを実行する必要があります。 「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
補足
ありがとうございます。 早速試してみたのですが、複数ページの場合の枝番の分母部分が 選択したシートの中で複数ページあるものの総枚数になっているのです。 それぞれそのシートだけの分母にしたいのですが・・。 そういうことはできないのでしょうか? あとは完璧だったのですが・・
- rukuku
- ベストアンサー率42% (401/933)
こんばんは フッターの設定で、シート2ならば、 2-&[ページ番号]/&[総ページ数] で出来ます(シート3ならば「2-」の部分を「3-」にします)。 ただし、各シートでの設定するなります。 シート名を「シート1」「シート2」…ではなく、「1」「2」… としておけば、以下のように設定できます。 &[シート名]-&[ページ番号]/&[総ページ数] 複数のシートに一括で設定するには、「作業グループ」という機能を使います。 作業グループは以下の手順で設定できます。 1.左端のシートの見出しを選択 2.キーボードのShiftを押しながら右端のシートの見出しを選択 これで、すべてのシートが選択されます。 この状態でフッターの設定をするとすべてのシートに反映されます。 作業グループを解除の手順は、 シート見出しの上で、マウス右クリック-作業グループ解除 です。
補足
早速のご回答ありがとうございます。 希望としては、ページが1ページしかないシートに関しては枝番は表示したくないのです。 そして、シート名も1、2・・には変更できないのです。 シートがたくさんあるので、個々に設定するのはとても大変かと・・ そこでできればマクロか何かで一度に設定できれば・・と思っています。 よろしくお願いします。
補足
色々試していただきありがとうございます。 特定の人しか使わない予定ですし、ブック内のシート全てを印刷することにします。 印刷した後で変更とかあった場合、再度全部印刷するのは・・と思って色々な方法を考えていたのですが、やっぱり無理なようですね。 ブック内のシートすべてを印刷するというマクロでお願いしたいのですが・・。 何度もややこしいお願いをして申し訳ありませんが、よろしくお願いします。