グッドデザイン賞を受賞したウォーターサーバー >>

お世話になっております。
タイトルの通りの質問なのですが、
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するにはどうすればよいのでしょうか?

たとえば、A1のセルに「ABC」と入力されていたとします。
その「ABC」をヘッダーに自動的に出力できるようにしたいのです。
できればマクロは使いたくありません。

宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

「表示」メニューの「ヘッダーとフッター」では、セル参照を指定することはできません。


「行タイトル」や「列タイトル」しか使用できません。
「行タイトル」を使用するには「ファイル」メニューの「ページ設定」で「シート」タグを選択してください。
ここで「行タイトル」にA1でしたら1行目を選択すればOKです。
ただし、行丸ごとですので注意してください。
    • good
    • 12
この回答へのお礼

やはり出来ませんか。
ありがとうございました。

お礼日時:2002/08/07 09:48

「マクロを使わずに」ではないのですが...


下記のサイトが参考になると思います。
マクロといっても比較的簡単ですし...
http://www2.odn.ne.jp/excel/waza/print.html#SEC14

参考URL:http://www2.odn.ne.jp/excel/waza/print.html#SEC14
    • good
    • 1
この回答へのお礼

マクロ。参考にしてみます。
ありがとうございました。

お礼日時:2002/08/07 09:49

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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

Aベストアンサー

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

これはマクロを使わないとできませんね。
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の部分も...続きを読む

Qエクセルで、ヘッダーに他のシートのセルの内容を表示させたいのですが。

エクセル2003を使用しています。
一つのブックに複数のシートがあり、シート「AAA」のセル「B3」にある内容を、シート「BBB」のデータを印刷する際にヘッダー部分に自動で表示(印刷まで)させたいのですが、そのようなことは可能なのでしょうか?
可能であれば、どのようにすればよいでしょうか。

Aベストアンサー

マクロの記録をとれば判ります。
表示ーヘッダーフッターーヘッダーの編集ー何か指定してーOK
マクロの記録は
Sub Macro1()
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
・・・・
.PrintErrors = xlPrintErrorsDisplayed
End With
End Sub
と出ますが、その中に
.CenterFooter = ""など3つHeader関係があります。
その右辺に
.CenterFooter = WorkSheets("AAA").Range("B3")
と変えれば良い。
ーー
ページ設定の画面に直接指定はできないようです。
http://okwave.jp/qa2777507.html
と同じ質問でしょ。検索不完全だね。

Qエクセルでページ数をあるセルに表示させたい

どこかのセルに、そのシートで印刷される
ページ数を表示するような計算式orマクロはありますでしょうか。
質問が分かりにくかったらすみません。

Aベストアンサー

次の方法は如何でしょうか。
(1)挿入→名前→定義で名前欄に任意名(仮にaaa)、参照範囲欄に =GET.DOCUMENT(50) →OK
(2)表示セルを選択→F3キー押下→aaaを選択→OK→enter

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qエクセル:シート名を手入力でなく、セル「A1」の文字を出したい。

いつもお世話になります。
エクセルのシート名についての質問です。
いつもはシート名を変えるとき、シートタブの上を右クリックして「変更」しています。

◆そこで、
(1) セル「A1」に入力されてある文字を自動で出す
(2) もしくはマクロボタンを押すと「A1」に入力されてあるものが「シート名」として変わる

というようにしたいのですが、その方法について教えてください。よろしくお願いいたします。

Aベストアンサー

こんにちは。


(1)の場合は、下記のコードを ThisWorkbook に記述してください。
どのワークシートでも機能します。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value
End Sub


(2)場合は、下記のコードを標準モジュールに記述しボタンにマクロ登録してください。
(すべてのシートにボタンを貼り付けるのは面倒でしょうから、ツールバーにボタンとして追加すると良いと思います。)

Public Sub SheetName()
ActiveSheet.Name = Range("A1").Value
End Sub

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?

QVBAでExcelのヘッダーに文字列+セルの値を入れたい

お知恵を貸してください。

Excelヘッダーについてです。

セルA1に日付が入っていて、この値をYYYY/MM/DDの形でヘッダーにしたいと思っているのですが、この日付の前に「日報」という2文字を必ず入れたいのです。

最終的な形は「日報YYYY/MM/DD」となればよいのですが、これはVBAで可能なのでしょうか。

今まで手入力していたのですが毎日印刷するものなので、自動化したいと思うのです。

よろしくお願いいたします。

Aベストアンサー

Dim strヘッダ  As String

With ActiveSheet
  'ヘッダ文字列の編集
  strヘッダ = "日報" & .Cells(1).Text
  
  '左
  .PageSetup.LeftHeader = strヘッダ
  '中
  .PageSetup.CenterHeader = strヘッダ
  '右
  .PageSetup.RightHeader = strヘッダ
End With

'印刷部(不要なら削除)
ActiveWindow.SelectedSheets.PrintOut

Qエクセル 0や空白のセルをグラフに反映させない方法

以下の点でどなたかお教えください。

H18.1~H20.12までの毎月の売上高を表に記載し、その表を元にグラフを作成しています。グラフに反映させる表の範囲はH18.1~H20.12の全てです。
そのためまだ経過していない期間のセルが空白になり、そこがグラフに反映され見づらくなります。
データを入力する都度グラフの範囲を変更すればいいのですが、うまく算式や設定等で空白や0円となっているセルをグラフに反映させない方法はありますか?

お手数ですが、よろしくお願いいたします。

Aベストアンサー

売上高のセルは数式で求められているのですよね?
それなら
=IF(現在の数式=0,NA(),現在の数式)
としてみてください。
つまり、0の場合はN/Aエラーにしてしまうんです。N/Aエラーはグラフに反映されません。


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

人気Q&Aランキング