• ベストアンサー

エクセルで、ヘッダーに特定セル内容を指定して印刷したい

ずばり、質問タイトルそのままです。 ヘッダー又はフッターに日時やファイル名・シート名は指定出来ますが、 そのシートのセルに入力されている内容を指定することは出来ますか? 初心者なので、手順も細かく指導頂けるとありがたいです。

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

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

これはマクロを使わないとできませんね。 Alt+F11でVBAの画面を開き、左側のThisWorkBookというところをダブルクリックしてください。 右側の画面に以下のマクロをコピーして貼りつけてください。 Private Sub Workbook_BeforePrint(Cancel As Boolean)  With ActiveSheet   .PageSetup.LeftHeader = .Range("A1").Text  End With End Sub この例では左のヘッダーにセルA1の内容をセットしています。 マクロ中のセル番地はA1でなく実際のセルに置きかえてください。 また、LeftHeaderの部分も以下にしたがって適切なものに置きかえてください。 左ヘッダー LeftHeader 中ヘッダー CenterHeader 右ヘッダー RightHeader 左フッター LeftFooter 中フッター CenterFooter 右フッター RightFooter マクロを記述したらその画面は閉じてしまってかまいません。 これで印刷時(または印刷プレビュー時)に、ヘッダーやフッターに指定したセルの内容が反映されます。 なお、マクロを設定した後、一度保存してExcelを終了し、もう一度ブックを開き直さないとマクロが有効にならないかもしれません。(なぜだかわからないですが、私が試したらそういう現象が起きたので、念のため)

U-HA
質問者

お礼

早速のご回答ありがとうございます。 急に別な仕事を頼まれてしまったので、来週試してみます。

U-HA
質問者

補足

早速試しました。 右フッターに印字を指定し、きちんと印字されたのですが ページ上部分の印字が、一部前ページの内容を表示したり 一部の枠が表示されなくなってしまいました。 どのように解消したらよいのでしょうか?

その他の回答 (4)

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

すみません、書き忘れがありました。 > 一部の枠が表示されなくなってしまいました。 申し訳ありませんが、これについてはちょっとわかりません。マクロの中ではヘッダーの設定をしているだけで、表自体は何もいじってないので…。

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

No1,3です。補足拝見しました。 > 同じシートでデータが長いため、改ページしています。 ということは、同じシート内で違うページの場合、違う値をヘッダーに表示したいということでしょうか。 そうだとすると、私のやり方ではうまくいきません。 質問文では、 > ヘッダー又はフッターに日時やファイル名・シート名は指定出来ますが、 > そのシートのセルに入力されている内容を指定することは出来ますか? とあるので、印刷時にヘッダーに特定セルの内容をヘッダーにセットするようにしました。したがって、そのときそのセルに入っていた内容がヘッダーに表示され、それは同じシートなら、どうしてもどのページでも同じ文字列が入ってしまいます。(セルに数式が入っていたとしても、その値がヘッダーにセットされます) 同じシート内で印刷ページごとにヘッダーの内容を変える方法は、標準の印刷機能を使う限り、標準機能である「ページ数」などで指定する以外の方法は、申し訳ないですが私にはわかりません。ページごとにヘッダーに設定するセルを変えるのもマクロでは無理です。(というか、できるのかもしれませんが、私にはわかりません) 絶対にできないというわけではなく、印刷機能自体をマクロに作り込むことで実現可能だとは思いますが、ちょっと大変です。(ページ数を計算し、1ページごとにヘッダを設定して1ページごと印刷するマクロを組めばいいのですが…) 具体的にどういうことがやりたいか(ページごとに何をヘッダーにセットすればいいのか)補足していただけると、チャレンジしてみますが、ちょっとお時間をいただくかもしれません。

U-HA
質問者

補足

ham_kamo様 本当に丁寧に教えて頂きまして、感謝しております。 シート内容が多いためページ数が増えてしまい、 対象名称を最初のページにしか入力していないため 2ページ以降の対象がわからなくなっていました。 シート自体は個別には保存せず、仮にAを記入し印刷後は Bを記入、そしてC、、、というように都度打ち返るため フッターで対象名称を確認する必要がありました。 ですので、シート内の各ページではなく、シート全てに同じ内容が 印刷できるといいため、教えて頂いた方法で問題ないと思います。 しかし、その後に行挿入や行削除を行い、項目を変更したところ 同じシート内の前ページの終わりの一部分(0.2行分くらい?)が 次のページに表示されるようになってしまいました。 枠に関しても、おそらくページ設定がずれたためかもしれないので ページ設定の余白を修正して確認してみます。 エクセルがよくわからないので、ham_kamo様に何度もご迷惑をおかけして申し訳ありません。

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

No.1です。補足拝見しました。 > ページ上部分の印字が、一部前ページの内容を表示したり とありますが、「前ページ」というのは「前シート」ということなのでしょうか?複数のシートをまとめて印刷しているのだとすると、No.1で回答したマクロでは不備があるので、以下のマクロに置きかえてください。("A1"は実際のセル番地に変えてください) Private Sub Workbook_BeforePrint(Cancel As Boolean)  Dim W As Worksheet  For Each W In Worksheets   W.PageSetup.RightHeader = W.Range("A1").Text  Next End Sub それから、 > 一部の枠が表示されなくなってしまいました。 というのがよくわかりません。どこの枠が表示されなくなったのでしょうか?シート内のセルでしょうか。それともヘッダーに枠をつけているのでしょうか?(私が使用しているExcel2000にはそのような機能がないのでちょっとわからないのですが) この点を補足していただけますか?

U-HA
質問者

補足

いつもすばやいご回答ありがとうございます。 説明不足で申し訳ありません。 同じシートでデータが長いため、改ページしています。 枠は、結合したセルに枠をつけています。 宜しくお願いいたします。

  • robbie21
  • ベストアンサー率55% (5/9)
回答No.2

ヘッダーに数式等は使用できませんが、 [ファイル]-[ページ設定]-[シート]タブで [行のタイトル]を 例えば $1:$1 とすると、シートの1行目がページごとに繰り返されるので、ヘッダーのように使用することが出来ます。 つまりこの状態で、例えば、 セルA1に =A10 としておけば、印刷時にA10の内容が各ページの先頭に印字されます。

U-HA
質問者

お礼

ご回答ありがとうございます。 ページ自体は設定を変えられないので、ヘッダー・フッターで 表示させてたいと思っています。

関連するQ&A