初めて自分の家と他人の家が違う、と意識した時

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

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

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

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

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

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

A 回答 (4件)

Dim strヘッダ  As String



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

'印刷部(不要なら削除)
ActiveWindow.SelectedSheets.PrintOut
    • good
    • 1
この回答へのお礼

ありがとうございました。教えていただいた方法で無事解決いたしました。お礼が遅くなりまして申し訳ございませんでした。

お礼日時:2005/11/25 16:59

Wendy02です。


#3の文章がヘンでした。

>及びことは考えていません。
及ぶことは考えていません。

つまり、シート全体に及ぶためには、ThisWorkbookイベントの中のWorkbook_BeforePrintを使うわけですが。
    • good
    • 0

こんばんは。



まあ、こんなところかと思いますね。

きちんと、"A1" に YYYY/MM/DD という書式で入力されているのでしたら、#1 さんの .Textプロパティで十分です。

Dim myDate As Date
With ActiveSheet
 myDate = .Range("A1").Value
 .PageSetup.LeftHeader = "日報 " & Format$(myDate, "YYYY/MM/DD")
 .PrintOut  'Preview:=True  ''確認用
End With

当然と思いますが、シートが明示されていませんから、他のシートにこのヘッダーが及びことは考えていません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
お礼が遅くなりまして申し訳ございませんでした。

お礼日時:2005/11/25 17:00

VBEを開いて「ThisWorkBook」に以下のコードを貼り付けてください。


Private Sub Workbook_Open()
ActiveSheet.PageSetup.RightHeader = _
"報告 " & Format(CDate(ActiveSheet.Range("A1")), "YYYY/MM/DD")
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
お礼が遅くなりまして申し訳ございませんでした。

お礼日時:2005/11/25 16:59

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

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


おすすめ情報