
エクセル2000についてお尋ねします。
ヘッダの右側に
([シート毎のページ番号]/[シート毎のページ数])
フッタの中央に
([ブック全体の通しページ番号]/[ブック全体の総ページ数])
を入力・印刷したいのです。
今までは手入力でフッタのページ番号のうしろに「+前のシートまでのページ数」、[ブック全体の総ページ数]の代わりに数値を直接入力していたのですが、1つのブックにつきシート数が20~60程度ある上にページの追加・削減があるので、もっと簡単なやり方があったら教えてほしいです。
VBAは、まだ勉強を始めたばかりで、ネット上で使えそうなVBAをコピーして自分のエクセルに貼ることしか出来ません^^;
どうか、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
こんな感じでしょうか?
必ずコピー等を取ったテスト用ブックで試して下さい。
ページ数によって、結構処理時間が掛かります。
'---------------------------------------------------------------------
Sub Test()
Dim ws As Worksheet
Dim AllCnt As Integer, pCnt As Integer
AllCnt = 0
For Each ws In Worksheets
AllCnt = AllCnt + PageCnt(ws)
Next ws
pCnt = 0
For i = 1 To Worksheets.Count
Set ws = Worksheets(i)
ws.PageSetup.RightHeader = "&P / &N "
If i = 1 Then
ws.PageSetup.CenterFooter = "&P / " & AllCnt
Else
pCnt = pCnt + PageCnt(Worksheets(i - 1))
ws.PageSetup.CenterFooter = "&P+" & pCnt & " / " & AllCnt
End If
Next i
Set ws = Nothing
End Sub
'---------------------------------------------------------------------
Function PageCnt(ws As Worksheet) As Integer
Dim h As Integer, v As Integer
PageCnt = 0
If ws.UsedRange.Address = "$A$1" Then
If IsEmpty(ws.Range("A1").Value) Then
Exit Function
End If
End If
h = ws.HPageBreaks.Count
v = ws.VPageBreaks.Count
If v = 0 Then
PageCnt = h + 1
Else
PageCnt = (h + 1) * (v + 1)
End If
End Function
'---------------------------------------------------------------------
この回答への補足
有難うございます。
試してみたのですが、総ページ数が31ページのものが「62」に、137ページのものが「392」に、135ページのものが「390」になってしまいました。
通しページ番号の方も、1シート目が1枚だから2シート目は2ページになるはずが、いきなり5ページになってしまいました。
PERSONAL.xlsに貼り付けるのがいけないのかも思い、作業用シートに貼ってみましたが、同じでした。
また、ページ設定で縮小印刷の設定がかかってるせいかなとも思いましたが、100%の設定のファイルで試してもうまく行きません(T_T)
それと申し遅れましたが、縦に長い表なので、横方向の改ページ数は考えなくて大丈夫です。(ごめんなさい!!)
それから、もし出来たらで結構なのですが、最初の方に表紙・目次など、カウントしたくないシートが入った時に、何か設定を変えるなどして、飛ばすことは可能でしょうか?
No.3
- 回答日時:
こんにちは。
> 改ページプレビューでは確認しなかったんですが、
> シートを全選択して印刷プレビューで見た限りでは、
> ヘッダー部分の総ページ数コマンドで入力されてい
> る部分は「31」になっていました。
ちなみに、全選択して印刷プレビューを見てはダメです。
シート毎に見ないとまったく関係無い数値が出ます。
&P / &N を全てのシートヘッダーにいれ、&P+x / ax を各ページに入れてます。
ax は全てのシートをループして各ページの改ページをカウントしていった合計で、x は前のページの改ページ数です。
シート1のページ数 1 (改ページ数 0)
シート2のページ数 5 (改ページ数 4)
シート3のページ数 8 (改ページ数 7)
だとすると、フッターは下記のような感じになります。
→ 1 / 14
→ 1+1 / 14 ~ 5+1 /14 まで
→ 1+6 / 14 ~ 8+6 /14 まで
これを全選択して印刷プレビューし、最終ページを見ると、ヘッダーは 14 / 14 でフッターは 20 / 14 になります。
印刷プレビューとは、ページの数え方が違い、同じ数え方をVBAでやる方法は私には解かりません。
あと、このマクロは改ページを数えているので、印刷範囲にない場所に改ページがあっても数えてしまいます。
Sheet1が1ページしかないのに、Sheet2の通し番号が5から始まるというのは、印刷範囲外に使われていない(印刷範囲の中に無い)改ページがあるのでは?
どこかのセルで右クリックして、「すべての改ページを解除」して試して見てください。
また、新規ブックに適当にデータを入れて試しても、おかしな結果しか出ないようならご使用を中止してください。
こちらでは、印刷範囲以外に改行がある時以外は問題なく動作します。
こんばんは。
返事が遅くなってしまって申し訳ありませんでした。
会社にあるデータでいろいろ試してみたのですが、やっぱりうまく行きません(泣)
>Sheet1が1ページしかないのに、Sheet2の通し番号が5から始まるというのは、印刷範囲外に使われていない(印刷範囲の中に無い)改ページがあるのでは?
>どこかのセルで右クリックして、「すべての改ページを解除」して試して見てください。
改ページは入っていません。また、念のため一度改ページを挿入して、それから全部のシートについて「すべての改ページを解除」してみたのですが、やっぱりダメでした。
>新規ブックに適当にデータを入れて試しても、おかしな結果しか出ないようならご使用を中止してください。
新規ブックで、画面を改ページプレビューにしてからやってみたところ、うまく行きました。 だもので、諦めがつかなくて、自分で考えられる限りの設定を試してみたのですが、もうさっぱり分りません。
>ちなみに、全選択して印刷プレビューを見てはダメです。
>シート毎に見ないとまったく関係無い数値が出ます。
これがちょっと意味が分らないのですが、マクロを実行した後でヘッダーフッターを確認してみたところ、総ページ数のところに数値が入っているのだから、その後に全選択・印刷プレビューしても問題はないのでは?
ページ設定のところで先頭ページ番号は全部「1」に設定してありますし、実際、シートごとに見ても全選択してみても、総ページ数は変わっていませんし...
>これを全選択して印刷プレビューし、最終ページを見ると、ヘッダーは 14 / 14 でフッターは 20 / 14 になります。
ならないんですよ(・・? 途中の+αの数値が飛んじゃって、結果、総ページ数も実際のページ数より増えちゃってます(;_;)
どちらにせよ、今回の作業にはタイムアウトになってしまったので、結局手入力で作業しました。
でも、またいつか、別のファイルで作業することになるので、その頃までに自分でもう少し勉強して、作っていただいたマクロを参考に何とかしようと思います。
今回は、本当にありがとうございました。
No.2
- 回答日時:
こんにちは。
> 総ページ数が31ページのものが「62」に、
メニューの表示-改ページプレビューで見ると何ページになってますか?ひょっとして、本来データがあるのに印刷範囲にしてない行や列がありますか?
> 最初の方に表紙・目次など、カウントしたくないシートが入った時に、何か設定を変えるなどして、飛ばすことは可能でしょうか?
これは、ヘッダーフッターに入れるのであれば、不可能だと思います。
この回答への補足
再度のアドバイス、有難うございます。
>メニューの表示-改ページプレビューで見ると何ページになってますか?ひょっとして、本来データがあるのに印刷範囲にしてない行や列がありますか?
改ページプレビューでは確認しなかったんですが、シートを全選択して印刷プレビューで見た限りでは、ヘッダー部分の総ページ数コマンドで入力されている部分は「31」になっていました。(フッターは62)印刷範囲の設定はかけてありますが、データはその外には入っていません。試しに、一時的に作った「印刷範囲を設定せずに作ったファイル」でもダメでしたし...
今自宅で、作業を行いたいファイルは会社にあるので、月曜になったら改ページプレビューでもう一度確認してみます。申し訳ありませんが、このマクロを使う時の注意事項等、何かありましたら教えていただけないでしょうか。よろしくお願いします。
>ヘッダーフッターに入れるのであれば、不可能だと思います。
分りました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Excel(エクセル) エクセルで 同じシートにある2ページに、おなじページをつけたい 3 2022/07/11 16:15
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- ノートパソコン ページ番号の入れ方について 3 2023/02/16 17:11
- その他(Microsoft Office) エクセルのヘッダー番号を順番に &[ページ番号]にしておいて 最終ページだけ別なものにしたいのですが 3 2022/08/03 19:02
- Visual Basic(VBA) 該当セルの値を別ブックのシート名と一緒であればコピーしてほしい 1 2022/11/10 20:12
- PDF EXCEL ページを指定してPDF出力するVBAを教えてください。 2 2023/02/09 10:27
- Visual Basic(VBA) VBAでPDFのアクティブページ番号取得 1 2023/05/25 12:41
- PDF vbaでpdfを開いて1ページ目のみ印刷する。 1 2022/11/12 12:35
- Visual Basic(VBA) VBAでWEBサーバー上に保存されたPDFファイルのリンク有効チェックについて 1 2022/11/11 16:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA_日時のソート
-
ミリ秒を時間へ変更するには? ...
-
【マクロ】上のデータに下のデ...
-
エクセルで教えてください。 例...
-
エクセルの数式について教えて...
-
テーブルの合計、エラーをはぶ...
-
Excelのチェックボックスについ...
-
【オートフィルター】3つのシ...
-
2枚のエクセル表で数字をマッチ...
-
エクセルで、一部のセルだけ固...
-
Excelファイルを開くと私だけVA...
-
マクロ セルを右クリックした時...
-
【Excel】エクセルで書式なしコ...
-
excelVBAについて。
-
弥生青色申告オンライン .csvの...
-
セルの左に余白を付ける
-
エクセルで、数字の下4桁の0を...
-
ExcelVBAについて。
-
excelVBAについて。
-
ExcelのIF関数との組み合わせの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの設定、下へスクロー...
-
別のシートの指定列の最終行を...
-
【マクロ】シート追加時に同じ...
-
Excelファイルを開くと私だけVA...
-
Excelの関数を教えて下さい。
-
マクロを実行すると、セル範囲...
-
エクセルの設定、特定の列以降...
-
Excelの条件付書式について教え...
-
Excelで作成した出欠表から日付...
-
Excelでの文字入力について
-
Excel 日付の表示が直せません...
-
Excel関数の解決方法
-
システムファイルについて
-
自動的に日付入力 応用
-
UNIQUE関数の代用
-
エクセル内に読み込んが画像の...
-
勤務外時間を出す表が作りたい
-
Excel 偶数月の15日(土日祝...
-
【マクロ】Call関数で呼び出し...
-
【マクロ】1回目の実行後、2...
おすすめ情報