「教えて!ピックアップ」リリース!

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

A 回答 (5件)

これはマクロを使わないとできませんね。


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を終了し、もう一度ブックを開き直さないとマクロが有効にならないかもしれません。(なぜだかわからないですが、私が試したらそういう現象が起きたので、念のため)

この回答への補足

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

補足日時:2007/02/26 09:28
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/02/23 17:45

すみません、書き忘れがありました。



> 一部の枠が表示されなくなってしまいました。

申し訳ありませんが、これについてはちょっとわかりません。マクロの中ではヘッダーの設定をしているだけで、表自体は何もいじってないので…。
    • good
    • 0

No1,3です。

補足拝見しました。

> 同じシートでデータが長いため、改ページしています。

ということは、同じシート内で違うページの場合、違う値をヘッダーに表示したいということでしょうか。
そうだとすると、私のやり方ではうまくいきません。

質問文では、

> ヘッダー又はフッターに日時やファイル名・シート名は指定出来ますが、
> そのシートのセルに入力されている内容を指定することは出来ますか?

とあるので、印刷時にヘッダーに特定セルの内容をヘッダーにセットするようにしました。したがって、そのときそのセルに入っていた内容がヘッダーに表示され、それは同じシートなら、どうしてもどのページでも同じ文字列が入ってしまいます。(セルに数式が入っていたとしても、その値がヘッダーにセットされます)

同じシート内で印刷ページごとにヘッダーの内容を変える方法は、標準の印刷機能を使う限り、標準機能である「ページ数」などで指定する以外の方法は、申し訳ないですが私にはわかりません。ページごとにヘッダーに設定するセルを変えるのもマクロでは無理です。(というか、できるのかもしれませんが、私にはわかりません)

絶対にできないというわけではなく、印刷機能自体をマクロに作り込むことで実現可能だとは思いますが、ちょっと大変です。(ページ数を計算し、1ページごとにヘッダを設定して1ページごと印刷するマクロを組めばいいのですが…)

具体的にどういうことがやりたいか(ページごとに何をヘッダーにセットすればいいのか)補足していただけると、チャレンジしてみますが、ちょっとお時間をいただくかもしれません。

この回答への補足

ham_kamo様
本当に丁寧に教えて頂きまして、感謝しております。
シート内容が多いためページ数が増えてしまい、
対象名称を最初のページにしか入力していないため
2ページ以降の対象がわからなくなっていました。
シート自体は個別には保存せず、仮にAを記入し印刷後は
Bを記入、そしてC、、、というように都度打ち返るため
フッターで対象名称を確認する必要がありました。
ですので、シート内の各ページではなく、シート全てに同じ内容が
印刷できるといいため、教えて頂いた方法で問題ないと思います。

しかし、その後に行挿入や行削除を行い、項目を変更したところ
同じシート内の前ページの終わりの一部分(0.2行分くらい?)が
次のページに表示されるようになってしまいました。

枠に関しても、おそらくページ設定がずれたためかもしれないので
ページ設定の余白を修正して確認してみます。
エクセルがよくわからないので、ham_kamo様に何度もご迷惑をおかけして申し訳ありません。

補足日時:2007/02/26 13:46
    • good
    • 0

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にはそのような機能がないのでちょっとわからないのですが)

この点を補足していただけますか?

この回答への補足

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

補足日時:2007/02/26 11:22
    • good
    • 0

ヘッダーに数式等は使用できませんが、


[ファイル]-[ページ設定]-[シート]タブで
[行のタイトル]を
例えば
$1:$1
とすると、シートの1行目がページごとに繰り返されるので、ヘッダーのように使用することが出来ます。

つまりこの状態で、例えば、 セルA1に
=A10
としておけば、印刷時にA10の内容が各ページの先頭に印字されます。
    • good
    • 2
この回答へのお礼

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

お礼日時:2007/02/26 09:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング