• 締切済み

Excelでのページ番号付与について(WindowsXP)

Excelでのページ番号付与について(WindowsXP) 何枚かのシートがあるファイルに一括でヘッダー・フッターを付けたいと思っています。 Sub SetHeader() Dim mySheet As Worksheet Application.ScreenUpdating = False For Each mySheet In ActiveWindow.SelectedSheets With mySheet.PageSetup .LeftHeader = "左ヘッダー" .CenterHeader = "中央ヘッダー" .RightHeader = "右ヘッダー" .LeftFooter = "左フッター" .CenterFooter = "中央フッター" .RightFooter = "右フッター" End With Next Application.ScreenUpdating = True End Sub 上記のようにマクロを作成したのですが、選択したシートの連番という単純な物ではなく ちょっと面倒なページ表示をしなければいけなくなりました。 一つのファイルの中で 1シート目→1ページ 2シート目→3ページ 3シート目→2ページ などとなっている場合 1枚目→1 2枚目→2-1/3    2-2/3    2-3/3 3枚目→3-1/2    3-2/2 というようなページ表示にしたいのですが、どのようにマクロを組めばいいかわからなくて困っています。 よろしくお願いいたします。  

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

フッターの自動連番は印刷時の状況により番号が変わってしまうのでうまくいかない、という意味の質問と解釈してよいのでしょうか? 使用状況がよくわからないので、未検証のアイデアのみ。 1)常に3枚のシートがセットで印刷されるという仮定が成り立つのであれば  1枚目は文字列で固定数字をセット、2枚目、3枚目は普通なら  2-&[ページ番号]/3 という設定でしょうが、これだと最初が2-2/3から  始まってしまうので、 3-&[ページ番号]-1/3 のように設定すると  3-1/3 からの連番とできるみたいです。 (ただし、2枚目のシートを単独で印刷すると 2-0/3 始まりになる) 2)それぞれのシートに固定のページを設定できればこと足りるので、  フッター利用はしないで、エクセルのセル内に文字列としてページ番号を  記載しておく。 (誤って変更されないように、必要ならそのセルに保護をかけておく) 3)印刷の度に、印刷する内容(シートの組合せ)が変わる場合  フッターには通常のシート毎のページ設定をしておくいて、  マクロで印刷コマンドを作成しておく。  例:2枚目は 2-&[ページ番号]/3 のように設定しておき、複数シートを  同時に印刷しても、マクロ側でSelectedSheetsを1シートずつプリントする  ことで、各シートのページ番号は常に1始まりとすることが可能。 (マクロのコマンド化も可能だったと思いますので、メニューバーに登録  してしまえば、操作はほとんど同じにできますよね) 何かのヒントにでもなれば…