• ベストアンサー

excelシートの部数印刷でのページ番号表示

初めまして。どうしてもわかないので皆様にお世話になれればありがたいと思います。 EXCELのページ番号ですが、部数印刷した場合でも連番で表示される機能もしくはVBAなどありますか?  1シート1ページを10枚印刷した場合にページ番号が連番表示されるということです。  お力を貸してください。宜しくお願いします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

これは標準の印刷機能では難しいですね。(できるかもしれませんが) 連番でページ番号を振りながら印刷するマクロを組んでみました。 Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 Sub ページ数をつけて印刷()  Dim n As Variant, i As Integer  n = InputBox("印刷部数を入力してください")  If n = "" Then Exit Sub  For i = 1 To n   ActiveSheet.PageSetup.CenterFooter = i   ActiveSheet.PrintOut  Next End Sub Alt+F11でExcelの画面に戻ってAlt+F8からマクロを実行してみてください。実行すると印刷部数を入力するダイアログが出るので、最初は1などを入力して試してみてください。キャンセルを押したり、何も入力せずにOKを押したら実行を中止しします。 注意点ですが、このマクロを実行して印刷部数を入力すると、印刷ダイアログは出てこずにいきなり印刷が始まります。ページ設定やプリンタの設定は、あらかじめファイルメニューで行っておいてから、マクロを実行してください。 なお、このマクロでは中央のフッターにページ番号を表示していますが、他の場所にしたい、フォントや大きさを希望の大きさに調節したい、という場合はそのように修正するので補足をお願いします。

wasabi033
質問者

お礼

ありがとうございます。すばらしいの一言です。 お言葉に甘えていくつか希望を追加しますが・・・ (1)ページ番号表示位置を右上の場合 (2)1シート2ページの部数印刷で連番にした場合(1.2.1.2.を1.2.3.4.に) もしくは、2シート1ページを部数印刷で連番にした場合・・・ 是非、お力をお貸しください。 お願いします。

その他の回答 (5)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.6

だめでしたか…。 手元にExcel2007がないため、ネットでそれらしき情報を検索してみたのですが、まだ発売されて間もないためか情報が少なく、ちょっとこれ以上は原因追及ができない状態になってしまいました。 とりあえず、「部数」-「ページ数」の形式で右上に表示するようにしてみました。以下のマクロと差し替えていただけますか? Sub ページ数をつけて印刷()  Dim n As Variant, i As Integer  Dim H_Break As Integer  Dim V_Break As Integer  Dim P_Page As Integer    n = InputBox("印刷部数を入力してください")  If n = "" Then Exit Sub    H_Break = ActiveSheet.HPageBreaks.Count '横の改ページ数取得  V_Break = ActiveSheet.VPageBreaks.Count '縦の改ページ数取得    If V_Break = 0 Then   P_Page = H_Break + 1  Else   H_Break = H_Break + 1   V_Break = V_Break + 1   P_Page = H_Break * V_Break  End If    For i = 1 To n   ActiveSheet.PageSetup.RightHeader = CStr(i) & " - &P"   If i = 1 Then    Application.Dialogs(xlDialogPrint).Show   Else    ActiveSheet.PrintOut   End If  Next End Sub

wasabi033
質問者

お礼

ありがとうございます。 部数-ページは正常にできました。 感激しております。 山間部のJAで働いている者ですが、Visual Basic を知っている者が皆無な為、業務効率で大変苦労しておりました。 ham_kamoさんのお陰で一つ問題解決致しました。 ですがまだまだ、課題は山積みです。 在庫管理の効率化、独自のHPの作成、ネット販売・・・・PC頼りの業務が未だ、整備されていません。 もし、お暇がありましたら御指南ください。宜しくお願いします。 ほんとにありがとうございました。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.5

補足拝見しました。 Excel2007をお使いなのですね。こちらはExcel2000なので、やはりバージョンの違いによるものかな…。ちょっと調べてみます。 記録していただいたマクロを見る限り、マクロの書式はExcel2007でも変わってないようなので、うまくいくはずなのですが…。とりあえず、ちょっとだけ変えてみたので、差し替えて試していただけますか? Sub ページ数をつけて印刷()  Dim n As Variant, i As Integer  Dim H_Break As Integer  Dim V_Break As Integer  Dim P_Page As Integer    n = InputBox("印刷部数を入力してください")  If n = "" Then Exit Sub    H_Break = ActiveSheet.HPageBreaks.Count '横の改ページ数取得  V_Break = ActiveSheet.VPageBreaks.Count '縦の改ページ数取得    If V_Break = 0 Then   P_Page = H_Break + 1  Else   H_Break = H_Break + 1   V_Break = V_Break + 1   P_Page = H_Break * V_Break  End If    For i = 1 To n   ActiveSheet.PageSetup.RightHeader = "&P+" & CStr((i - 1) * P_Page)   ActiveSheet.PageSetup.RightFooter = "&P+1"   If i = 1 Then    Application.Dialogs(xlDialogPrint).Show   Else    ActiveSheet.PrintOut   End If  Next End Sub 私の手元にExcel2007がないため、調べてもわからないときは、すみませんがギブアップするかもしれません。ただ、ページを「通し番号」でなく、 1-1 1-2 2-1 2-2 のように、「部数」-「ページ数」のようにすることはできるかもしれません。これではまずいでしょうか? あと、左記のマクロでは動作確認用に右下にも部数に関係なく「ページ数+1」の数字が出るようにしておいたのですが、そこはどのようになっているでしょうか?

wasabi033
質問者

補足

お手数をおかけしております。 印刷した結果、右上は10.20.12.22  右下に11.21.11.21となりました。 「部数」-「ページ数」でも十分対応できますのでご協力を願います。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

すみません、もう1つ試していただきたいことがあります。 新規のブックを開き、 「ツール」>「マクロ」>「新しいマクロの記録」 を選択してください。 「マクロの記録」ダイアログが出るので、マクロ名はそのままMacro1で、「マクロの保存先」は「作業中のブック」を選択し、「説明」のところはユーザー名とか出てしまうので削除して、OKを押してください。 その状態で、 「ファイル」>「ページ設定」>「ヘッダー/フッター」の画面を開き、「ヘッダーの編集」を押して、右側のヘッダーのテキストボックスを選択し、ページ数を入力する#マークのボタンを押してください &[ページ番号]と入ると思うので、その後ろに+1と入力し、 &[ページ番号]+1 と入力された状態にしてOKを押し、ページ設定の画面を閉じます。 マクロの記録の小さな画面の■を押して記録を停止してください。 その状態で適当にセルに何か入力して、印刷プレビューで右上のヘッダーにどのように表示されるか教えてください。(1ページ目だと、2と表示されるはず) それから、Alt+F11を押すとVBAの画面が開くので、左のVBAProject(Book1)という新規のブックの下の、標準モジュールの中にあるModule1をダブルクリックしてください。右の画面に記録したマクロが表示されます。そのマクロを補足欄に貼り付けていただけますか?

wasabi033
質問者

補足

お手数かけます。Module1のマクロです。宜しくお願いします。 Sub Macro1() ' ' Macro1 Macro ' ' With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "&P+1" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.708661417322835) .RightMargin = Application.InchesToPoints(0.708661417322835) .TopMargin = Application.InchesToPoints(0.748031496062992) .BottomMargin = Application.InchesToPoints(0.748031496062992) .HeaderMargin = Application.InchesToPoints(0.31496062992126) .FooterMargin = Application.InchesToPoints(0.31496062992126) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With End Sub

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

> ページ番号が(10.20.11.22)と印刷されました。 えーと、これは原因がつかめないですね。。。こちらでは1,2,3,4と出てきているのですが。。。 Excelのバージョンの違いかな?当方はExcel2000ですが、そちらのバージョンは何でしょうか?(ヘルプ>バージョン情報で出てきます) ちょっとデバッグコーディングを入れて、その他も少し細工した修正版にしたので、それに置きかえてみていただけますか?(肝心のページ設定箇所はいじってないので、ページの表示は変わらないのですが、その原因を探るため) 実行すると部数を入力した後、「このシートのページ数は○であってますか?」というダイアログが出ます。「はい」を押すとそのまま処理を続行しますが、「いいえ」を押すと処理を中止します。そこで、そのページ数があっているかどうかを確認していただきたいのです。 上記のページ数が間違っていても、とりあえず「はい」を押して印刷してみてください。テストのために右のフッターにもページ数が入るようにしています。これは部数のコントロールをしていなくて、単に実際のページ+1を表示することにしています。なのでそこは2,3,2,3となるはずですが、そこの表示がどうなるか確認していただけますか? なお、いきなり印刷ではなく、最初に印刷ダイアログを出すようにしました。1部目は実際に印刷しなくてもそこから印刷プレビューで確認できます。(ただし1部目だけで、2部目以降は直接印刷されてしまいますが) Sub ページ数をつけて印刷()  Dim n As Variant, i As Integer  Dim H_Break As Integer  Dim V_Break As Integer  Dim P_Page As Integer    n = InputBox("印刷部数を入力してください")  If n = "" Then Exit Sub    H_Break = ActiveSheet.HPageBreaks.Count '横の改ページ数取得  V_Break = ActiveSheet.VPageBreaks.Count '縦の改ページ数取得    If V_Break = 0 Then   P_Page = H_Break + 1  Else   H_Break = H_Break + 1   V_Break = V_Break + 1   P_Page = H_Break * V_Break  End If    If MsgBox("このシートのページ数は" & P_Page & "であってますか?", _  vbQuestion + vbYesNo) = vbNo Then Exit Sub  For i = 1 To n   ActiveSheet.PageSetup.RightHeader = "&P+" & (i - 1) * P_Page   ActiveSheet.PageSetup.RightFooter = "&P+1"   If i = 1 Then    Application.Dialogs(xlDialogPrint).Show   Else    ActiveSheet.PrintOut   End If  Next End Sub

wasabi033
質問者

お礼

返信ありがとうございます。 バージョンはExcel2007を使用しています。 印刷してみましたが、10.20.12.22とでました。 2ページ2部印刷でダイアルログは「このシートのページ数は2であってますか?」とでました。 これは、新規ページで試した結果ですが、実際に印刷したいページは2ページ目が他ページから図のリンク張り付けを行っております。 その結果、ダイアルログは「このシートのページ数は6であってますか?」となり、ページ番号は10.20.10.20.16.26とでました。 お手数ですが宜しくお願いします。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No,1です。 > (1)ページ番号表示位置を右上の場合 > (2)1シート2ページの部数印刷で連番にした場合(1.2.1.2.を1.2.3.4.に) はわかったので、そのように修正してみましたが、 > もしくは、2シート1ページを部数印刷で連番にした場合・・・ というのはどういう場合でしょう。各シートをの印刷サイズを半分に縮小して、複数シートを1枚に2ページ分印刷する、ということでしょうか。そうだとすると、それは通常は印刷するときにプリンタの詳細設定で指定するので、ちょっとややこしくなりそうです。 とりあえず、(1)(2)に対応したマクロです。上記の「2シート1ページを部数印刷」の部分は私の認識であっているか、補足をお願いします。 Sub ページ数をつけて印刷()  Dim n As Variant, i As Integer  Dim H_Break As Integer  Dim V_Break As Integer  Dim P_Page As Integer    n = InputBox("印刷部数を入力してください")  If n = "" Then Exit Sub    H_Break = Sheet1.HPageBreaks.Count '横の改ページ数取得  V_Break = Sheet1.VPageBreaks.Count '縦の改ページ数取得    If V_Break = 0 Then   P_Page = H_Break + 1  Else   H_Break = H_Break + 1   V_Break = V_Break + 1   P_Page = H_Break * V_Break  End If    For i = 1 To n   ActiveSheet.PageSetup.RightHeader = "&P+" & (i - 1) * P_Page   ActiveSheet.PrintOut  Next End Sub

wasabi033
質問者

お礼

ham_kamo さん 早速の返信ありがとうございます。 修正していただいたマクロは趣旨はバッチリ合ってます。 ただ。。。一つだけ・・・ 1シート2ページを2部、試し印刷したところ、ページ番号が(10.20.11.22)と印刷されました。 これが治れば、長年の懸案が解決します。是非お願いします。

関連するQ&A

  • Excelで1シートを部数印刷したい。

    初めまして。 VBA詳しい方助けてください。 因みに私はVBAがわかりませんが 1ページのシートを複数連番でページ印刷したいのです。 VBAの式のご教授をよろしくお願いします。 (1)連番印刷 (2)ページの中央下上あたりに斜48%位で印刷したい。 (フォント書式の変更も状況にあわせ行いたい) お手間を取らせますが詳しい方よろしくお願いいたします。

  • Excelの部数印刷での部番号表示

    初めまして。 どうしてもわかないので皆様に協力して頂ければと思います。 1部3ないし4ページになるアンケート調査の質問紙を印刷したいのですが、 各部ごとにIDを振りたいと考えています。 そのIDに部番号のようなものがあればそれを印刷し、と思っていたのですが、標準の印刷機能ではどうも不可能なようで、VBA?を調べてみたのですが、私には分かりませんでした。 VBAで可能なのでしょうか?皆様のお力をお貸し下さい。 よろしくお願いいたします。

  • エクセルで1シートが6ページ印刷となる時、2枚目以降だけにページ番号をつけるには

    どなたか詳しい方、お願いいたします。 エクセルの1シートが縦長で、A4で8ページの印刷となります。 1ページ目が表紙の体裁なのでページ番号は無し、2枚目から1~7とフッター中央にページ番号をつけたいのです。さらにプリンターの両面印刷機能で一気にA3横2枚に小冊子風に印字したいのです。 2シートに分けると、プリンターの両面印刷機能がダメで、分かれてしまいます。 1シートのまま、1ページ目は空白、2ページ目以降に1から連番とするフッターの設定はできるのでしょうか?

  • エクセルを印刷時のページ番号

    どうもこんにちわ。 ご質問を1つさせていただきます。 お分かりになる方いらっしゃいましたら宜しくお願い致します。 エクセルについての質問です。 1つのエクセルに現在カテゴリーわけしたシートが10個あります。 それを印刷したときにページ番号が自動的に連番になるようにしたいのです。 1枚目のシートをページ番号が入るように印刷すると普通にページ番号が入るのですが、2枚目のシートを印刷したときには、また1からの番号になってしまいます。これをシートが変わっても一枚目のシートからの連番にする方法はないでしょうか? また、今後各シートのページ数が増えて行くと思うのですが、それも反映されつつ番号が増えていけばいいなと思っております。 説明がわかりにくいようでしたら随時付け足しは行っていきます。 お分かりになる方がいましたらご教授宜しくお願い致します。

  • Excelで印刷設定をした後に部数の連番を印刷

    おそらくVBAを使うことになると思いますが、やりたいことは、 シートを1ページ印刷します。 それを例えば10部印刷します。 合計10枚出力します。 そのときに用紙サイズや用紙種類を指定して、 10部の連番を一枚ずつのページに印刷されるようにしたいです。 例えば、 1枚目:1/10 2枚目:2/10 ・・・ 10枚目:10/10 ちなみに部数印刷の場合なので ヘッター/フッターでは出来なそうです。 素人ながらに検索しましたら、 部数を印刷するVBAは見つかりました。 http://okwave.jp/qa/q2909328.html このマクロではそのまま印刷が始まってしまいますが、 印刷が始まる前に、用紙の設定等をしたいのです。 よろしくお願い致します!

  • Excelシートにページ番号を表示したい。

    よろしくお願いします。 Wordでプリントを作成しています。その中に1枚Excelのシートを入れるのですが、Wordにはページ番号を打っているので、そのExcelシートにもページ番号を表示させたいのですが、どうすればよいか教えてください。※Excelシートは印刷範囲で印刷します。

  • 差込印刷で部数分のページを印刷するには?

    Microsoft Word 2003を使用して、Excelのワークシートからあるデータを差し込み印刷しています。 Excel上のレコードでは"数量"というセルがあり、そのセル内の数値の分だけ、差込印刷をツールバーの「プリンタに差し込み」から行っています。 このような場合に、1レコード内のページを文書内に表示したいのですが、どのようにすればよいでしょうか? 例えば、あるレコードに数量7とあった場合、表示を1/7,2/7,3/7,,,7/7としたいのです。 Excel側のレコードは手を加えたくないので、Word側でプリンタに差し込むページ数を取得して、ページ番号として連番を振る、、、といったような形ができればと思います。 よろしくお願いいたします。

  • Excelシート内におけるページ番号の反復表示

    Excelの一枚のシートの中に、AさんとBさんのデータがあります。 Aさんのデータは1~3ページまで、 Bさんのデータは4~6ページまで入力してあります。 このシートを印刷する際に、 Aさんのデータにページ番号1~3、 BさんのデータにもAさん同様ページ番号1~3を表示させることは可能でしょうか? Aさん、Bさんごとにシートを作成してページ番号を付ける以外、方法はないのでしょうか? 困っています。よろしくお願いいたします。

  • Excel2002の印刷時の印刷部数

    非常に初歩的なことかと思いますが、質問いたします。 Excel2002を使用しています。  あるbookでsheet1とsheet2はファイル→印刷で表示すると、 印刷部数が10となっており、sheet3とsheet4は印刷部数が1 となっています(当然同じプリンタです)。 印刷部数を1に戻したいのですが、どうやってもうまくいきません。 どなたか解決法を教えてください。お願いします。

  • エクセル2000・シートごとのページ番号とページ数、ブック全体のページ番号と総ページ数

    エクセル2000についてお尋ねします。 ヘッダの右側に    ([シート毎のページ番号]/[シート毎のページ数]) フッタの中央に    ([ブック全体の通しページ番号]/[ブック全体の総ページ数]) を入力・印刷したいのです。 今までは手入力でフッタのページ番号のうしろに「+前のシートまでのページ数」、[ブック全体の総ページ数]の代わりに数値を直接入力していたのですが、1つのブックにつきシート数が20~60程度ある上にページの追加・削減があるので、もっと簡単なやり方があったら教えてほしいです。 VBAは、まだ勉強を始めたばかりで、ネット上で使えそうなVBAをコピーして自分のエクセルに貼ることしか出来ません^^; どうか、よろしくお願いします。

専門家に質問してみよう