web-dev-qa-db-ja.com

キャリッジリターンを挿入するExcelマクロ

私の研究では、Chr(10)またはChr(13)を使用して、VBAマクロのヘッダーに改行を挿入する2つの可能性に遭遇しました。 Allen Wyattが Excel.tips.com に投稿したコードを見たことさえあります。これは、私が試みていることを正確に実行しているようですが、彼がそれを機能させると主張したところ、まだ成功していません。

これが私が実行しようとしている基本的なコードです:

With ActiveSheet.PageSetup
    .CenterHeader = "&F" & Chr(10) & "&A"
End With

私がやっている他のフォーマットがありますが、それはすべて成功します。この行は、ヘッダー( "&F")にファイル名のみを生成しますが、2行目には戻り値もタブ名も生成しません。それも失敗しません。それはこの線を通り抜けるだけです。

このマクロはもともとExcel 2010で私が記録したもので、ページの書式設定のための追加の自動化機能を追加しました。私はまだそれをExcel 2010で実行しており、この特定の行で正しく機能したことはありません。ここで何が起こるかについて誰かが知っていますか?

編集:これは、元のマクロ記録と私の編集からの完全なコードです。

Application.PrintCommunication = False
With ActiveSheet.PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
    .PrintTitleRows = "$1:$1"
    .PrintTitleColumns = ""
    .LeftHeader = ""
    .CenterHeader = "&F" & vbCrLf & "&A"
    .RightHeader = ""
    .LeftFooter = ""
    .CenterFooter = ""
    .RightFooter = "Printed &D"
    .LeftMargin = Application.InchesToPoints(0.7)
    .RightMargin = Application.InchesToPoints(0.7)
    .TopMargin = Application.InchesToPoints(0.75)
    .BottomMargin = Application.InchesToPoints(0.75)
    .HeaderMargin = Application.InchesToPoints(0.3)
    .FooterMargin = Application.InchesToPoints(0.3)
    .PrintHeadings = False
    .PrintGridlines = True
    .PrintComments = xlPrintNoComments
    .PrintQuality = 600
    .CenterHorizontally = False
    .CenterVertically = False
    .Orientation = xlPortrait
    .Draft = False
    .PaperSize = xlPaperLetter
    .FirstPageNumber = xlAutomatic
    .Order = xlDownThenOver
    .BlackAndWhite = False
    .Zoom = 100
    .PrintErrors = xlPrintErrorsDisplayed
    .OddAndEvenPagesHeaderFooter = False
    .DifferentFirstPageHeaderFooter = False
    .ScaleWithDocHeaderFooter = True
    .AlignMarginsHeaderFooter = True
    .EvenPage.LeftHeader.Text = ""
    .EvenPage.CenterHeader.Text = ""
    .EvenPage.RightHeader.Text = ""
    .EvenPage.LeftFooter.Text = ""
    .EvenPage.CenterFooter.Text = ""
    .EvenPage.RightFooter.Text = ""
    .FirstPage.LeftHeader.Text = ""
    .FirstPage.CenterHeader.Text = ""
    .FirstPage.RightHeader.Text = ""
    .FirstPage.LeftFooter.Text = ""
    .FirstPage.CenterFooter.Text = ""
    .FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
5
Mark

Patrick Hに同意します。このコードは機能します...

Sub header()
With ActiveSheet.PageSetup
    .CenterHeader = "&F" & vbCrLf & "&A"
End With
End Sub
6
XLmatters