• ベストアンサー

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

お知恵を貸してください。 Excelヘッダーについてです。 セルA1に日付が入っていて、この値をYYYY/MM/DDの形でヘッダーにしたいと思っているのですが、この日付の前に「日報」という2文字を必ず入れたいのです。 最終的な形は「日報YYYY/MM/DD」となればよいのですが、これはVBAで可能なのでしょうか。 今まで手入力していたのですが毎日印刷するものなので、自動化したいと思うのです。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

Dim strヘッダ  As String With ActiveSheet   'ヘッダ文字列の編集   strヘッダ = "日報" & .Cells(1).Text      '左   .PageSetup.LeftHeader = strヘッダ   '中   .PageSetup.CenterHeader = strヘッダ   '右   .PageSetup.RightHeader = strヘッダ End With '印刷部(不要なら削除) ActiveWindow.SelectedSheets.PrintOut

anemu1234
質問者

お礼

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

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

Wendy02です。 #3の文章がヘンでした。 >及びことは考えていません。 及ぶことは考えていません。 つまり、シート全体に及ぶためには、ThisWorkbookイベントの中のWorkbook_BeforePrintを使うわけですが。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 まあ、こんなところかと思いますね。 きちんと、"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 当然と思いますが、シートが明示されていませんから、他のシートにこのヘッダーが及びことは考えていません。

anemu1234
質問者

お礼

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

  • diashun
  • ベストアンサー率38% (94/244)
回答No.2

VBEを開いて「ThisWorkBook」に以下のコードを貼り付けてください。 Private Sub Workbook_Open() ActiveSheet.PageSetup.RightHeader = _ "報告 " & Format(CDate(ActiveSheet.Range("A1")), "YYYY/MM/DD") End Sub

anemu1234
質問者

お礼

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

関連するQ&A