• ベストアンサー

Excelについてのセルにページ番号

Excelについての質問です。 複数枚にわたるシートがあるんですがそれをフッターではなく セルの中に自動的にページをふるように設定することって できるのでしょうか?

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

複数シートは考えていませんでした。変形してみました。 下記マクロは単独、複数シートに対応しています。(しているはずです) 複数シートの場合は、1枚目のシートを選択(シート見出しをクリック)してShiftキーかCtrlキーを押しながら2枚目以降のシートを選択(同じようにシート見出しをクリック)します。各シートに渡った頁はシートの選択順にかかわらず左にあるシートから順に付けられます。色々勉強になりました。問題提起ありがとうございました! Public Const wrtColumn = 1 '印刷範囲での書き込む列位置(左からの列数) Public cellPage As Integer '複数シートを通しての通し番号 '選択したシートに連続番号をセットする Public Sub SelectSheetsPageNoSet()   Dim sht As Worksheet 'ワークシート   cellPage = 0 '共通頁の初期化   For Each sht In ThisWorkbook.Windows(1).SelectedSheets 'ウインドウは1つ     pageNoSet_Sub sht.Name '選択シート毎に処理する   Next End Sub '頁数(- 頁 -)をセルに書き込む。印刷範囲を設定して実行する(Sheet単位) Public Sub pageNoSet_Sub(shtName As String)   Dim hPB As Integer '改行位置   Dim cot As Integer '改行カウンタ   Dim rowNum As Long '印刷範囲の最終行   Worksheets(shtName).Activate   On Error GoTo ErrorHandler '印刷範囲を設定していない場合   With ActiveSheet     rowNum = .Range("Print_Area").Rows.Count     .Range("Print_Area").Cells(rowNum, 1).Select     hPB = .HPageBreaks.Count       For cot = 1 To hPB         cellPage = cellPage + 1         .HPageBreaks(cot).Location.Offset(-1, wrtColumn - 1) = "- " & cellPage & " -"       Next       cellPage = cellPage + 1       .Range("Print_Area").Cells(rowNum, wrtColumn) = "- " & cellPage & " -"   End With   Exit Sub ErrorHandler:   If Err = 1004 Then MsgBox "印刷範囲を設定して実行して下さい" End Sub

e3rin
質問者

お礼

すごい!出来ました! >色々勉強になりました。問題提起ありがとうございました! とんでもない、恐れ多いです。 マクロ、出来るとホント便利ですねぇ あたしもこれを機会にマクロの勉強はじめてみようかな。 大変助かりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

マクロを書いてみました。縦に長い表を想定しています。これは横に長い表は対応していません。 横に長い場合は別途書き換える必要があると思います。 印刷範囲が設定してあることが条件です。挿入した改頁と自動の改頁両方をカウントしています。 1頁に収まらない場合、改行位置は自動で設定されるはずですが、画面に改行位置が見えない場合は『HPageBreaks』が正確な値を返してくれないようです。そのため、印刷範囲の最終位置(最下段)に画面を移し、『HPageBreaks』で改行の個数と位置を確定しています。 wrtColumnに印刷範囲での書き込む列位置(印刷の左端から何列目か)をセットします。 以下を標準モジュールに貼り付けます。ご参考に。 '頁数(- 頁 -)をセルに書き込む。印刷範囲を設定して実行する Public Sub pageNoSet()   Const wrtColumn = 1 '印刷範囲での書き込む列位置(左からの列数)   Dim hPB As Integer '改行位置   Dim cot As Integer '改行カウンタ   Dim rowNum As Long '印刷範囲の最終行   On Error GoTo ErrorHandler '印刷範囲を設定していない場合   With ActiveSheet     rowNum = .Range("Print_Area").Rows.Count     '改行位置を設定するために印刷範囲の最後に移動する     .Range("Print_Area").Cells(rowNum, 1).Select     hPB = .HPageBreaks.Count       For cot = 1 To hPB         '改行位置の前のセルに頁を書き込む(例)         .HPageBreaks(cot).Location.Offset(-1, wrtColumn - 1) = "- " & cot & " -"         '= cot & "/" & (hPB + 1) これは頁数と総頁の例       Next       '最終頁のセルに書き込む       .Range("Print_Area").Cells(rowNum, wrtColumn) = "- " & cot & " -"       '= cot & "/" & (hPB + 1) これは頁数と総頁の例   End With   Exit Sub ErrorHandler:   If Err = 1004 Then MsgBox "印刷範囲を設定して実行して下さい" End Sub

e3rin
質問者

お礼

回答ありがとうございます♪ やはりマクロを使わないと出来ないんですねぇ。 マクロまで書いていただいてすっごく感謝してます。 早速ためさせていただきました。 しかし、あたしの説明不足だったのと、あたしの知識不足のせいで よく分からないのでもうひとつ質問させていただきたいのですが このマクロは複数のシートにわたっても使用することってできるんでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • maje
  • ベストアンサー率35% (42/120)
回答No.1

同じような質問ありますよ↓ 簡単には出来ないようです。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=94009
e3rin
質問者

お礼

早速の回答ありがとうございます。 簡単には出来ないようですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELでフッターにページ数

    EXCELでフッターにページ数を入れる時の質問です。 同ブック内の複数シートをまとめて印刷します。全体通してのページ番号と、シート内でのページとをフッターに印刷したいのですが、どうしたらよいでしょうか。 例)1シート目→1P   2シート目→3P   3シート目→1P ある場合、まとめて5ページ印刷し、 フッターには 1枚目→ 1、   2枚目→ 2-1/3、 3枚目→ 3-2/3、 4枚目→ 4-3/3、 5枚目→ 5 と、こんな感じに表示させたいのです。 2シート目のページ設定に &[ページ番号]/&[総ページ数]と設定すると 1枚目→ 1、   2枚目→ 2-2/5、 3枚目→ 3-3/5、 4枚目→ 4-4/5、 5枚目→ 5 となってしまいます。 わかる方、よろしくお願いいたします。  

  • エクセルで複数シートを選択して印刷した時のフッターで指定したページ番号について

    OSはXP、Officeは2003と2007を使っています。 エクセルに複数シートがあり、2ページ以上にまたがるシートに関しては ページ設定のフッター設定にて"1/?ページ"指定してあります。 印刷時に、複数シートを選択して印刷すると、シート内のページ数 印字になりません。 <例>1シート目には1ページ分のデータ   2シート目には2ページ分のデータ(フッター設定"1/?ページ") と、なっていたとして、印刷時、1,2シートを選んで印刷すると、 2枚目3枚目のフッター位置に2/3、3/3と印刷されてしまう。 ↑ これではなく、複数シートを選んだ状態でも、 2枚目3枚目のフッター位置に1/2、1/2と印刷したいのですが、無理ですか? 30シートほどあるので、1シートづつ印刷するのが面倒なのです。 1シート毎のページ割り振りにしたいのです。 方法はないですか?

  • エクセルのページ番号について

    エクセルで一つのシートにページが複数あったとした場合、[ページ設定]にてページ番号を設定すると、そのシートにあるページ全てに同じページ番号が付いてしまいます。 (例えば、1ページ目が、「3/20」とすると2ページ目は「4/20」というようにしたいです。) やってみたことは・・・ 印刷範囲をそのシートの1ページ目だけを印刷範囲設定して一つ一つやってみました。(はっきり言って、できませんでしたし、出来たとしても手間が掛かりすぎるのでこれは無理です。) 後はいろいろ半端にかまってみましたが、なんとも上手くいかないので分かりません。 教えてください。御願いします。

  • エクセルで作成したファイルにページ番号をつけたいのですが、始まりのページ番号が指定したページ番号に

    エクセルで作成したファイルにページ番号をつけたいと思います。 1つのブックに8シートあり、1つのシートに2頁あります。 この16ページに自動でページ番号を付けたいと思っているのですが、 イメージはフッターに【ページ数】/【総ページ数】というかたちで印刷したいと思っています。 ページは1ページからではなく、16ページからはじめたいとおもいます。 そのため、下記のように印刷をしたいのですが、  ○○会社16/32 どのようにしたらよいのか分かりません。 どうか皆さんやり方を教えて頂けないでしょうか。 宜しくお願い致します。

  • エクセルのシート名をエクセルの特定の「セル」に表示させたい。

    エクセルの表内にシート名を自動表示させ、シート名を変更したら 表の中にあるシート名も自動変更になるように、 リンクさせたいです。 ヘッダーフッターにはシート名とリンクする項目がありますが、 当方の質問は、あくまでもエクセルの「セル」にリンクさせたいのです。 お分かりになる方、どうか回答をお願い致します。

  • エクセルのページ番号の付け方

    ブック内に4シートありそれぞれ1ページずつシートがあります。 この条件で2番目のシートのみを印刷した場合でもフッターのページ番号に「2/4」と印刷するにはどのような設定をしたらよいでしょうか。 但し、シート数は今後も増える可能性があります。 宜しくお願い致します。

  • EXCELのページ番号で

    教えてください。EXCEL2000でフッターに ページ番号を入れたいのです。 但し、1ページ目のフッターには何も無し(空欄) 2ページ目のフッターからページ番号を1としたいのです。(質問の意図がうまく伝わると良いのですが) 表紙のみWORDということも考えましたが どうしても表紙もEXCELで作りたいのです。 宜しくお願いします。

  • エクセルページ設定

    エクセルで、ヘッダーとフッターそれぞれ独立させて、ページ設定は出来ないのでしょうか? 現在ヘッダーにシートページ数を設定しているのですが、フッターに総ページ数とページ番号を表示させたいのですが・・・

  • エクセルのフッター機能を使ってページ番号をうつには?

    エクセルのフッター機能を使ってページ番号をうてますよね。 それぞれのシートの中では用紙サイズごとに連続して番号を打つことまではできましたが たとえば3枚のシートを通して、連続した番号を打つにはどうすればできるのでしょうか?1番目のシートが1~4ページ、2枚目が5~7ページなど ちなみにマックです。 Page Makerなどの編集ソフトは使わずに、できればエクセルだけで完結させる方法を教えてください。

  • Excel等、同一の大きさでページを振る方法

    100ページ位のEXCELの資料があります。 複数のBook(20弱)に分かれていて ページフッターがあるもの、縮小しているもの、 複数シートに別れるものなどさまざまです。 この資料に統一のページ番号を振ることは可能でしょうか? 各Excelに値としてページを入力しても各資料で拡大縮小率が違うので大きさが違ってきてしまいます。 Microsoftバインダーを使ってみたのですが、 ページフッターが削除されてしまうためうまくいきませんでした。 また、客先等で印刷することも考えられるので あらかじめ紙にページを降っておくこともできません。 何か良い方法があれば教えてください。

プリンターが作動しない
このQ&Aのポイント
  • Windows11をインストール後にプリンターが作動しなくなりました。
  • 環境はWindows11で、USBケーブル接続、電話回線はひかり回線です。
  • ブラザー製品についての質問です。
回答を見る

専門家に質問してみよう