前提・実現したいこと
Excelで作った集計表を印刷するため、
データテーブルにフィルターを掛ける前後で別々の印刷設定をしています。
フィルター後用の設定は問題なく適用されているのですが、
フィルター解除状態用の設定(フィルター状態をリセットしたあとに、印刷設定を元に戻すための設定)では
ヘッダー設定が適用されていません。
フィルター後用の設定が生きたままになっていしまいます。
ところが、VBA画面でF8を押しながらステップ実行していくと
しっかりフィルター解除状態用の設定が適用されています。
こうなってしまう原因と、解決方法がわかりません。
とにかく、自動実行時にフィルター解除状態用の設定が適用されるようにしたいです。
(ヘッダーの設定を初期化したいです)
ご協力お願いします。
該当のソースコード
ExcelVBA
1Sub 印刷設定() 2 On Error Resume Next 3 ActiveSheet.PageSetup.LeftHeader = "" 4 Application.PrintCommunication = False 5 With ActiveWorkbook.ActiveSheet.PageSetup 6 .LeftMargin = Application.CentimetersToPoints(2) 7 .RightMargin = Application.CentimetersToPoints(2) 8 .TopMargin = Application.CentimetersToPoints(4) 9 .BottomMargin = Application.CentimetersToPoints(0) 10 .HeaderMargin = Application.CentimetersToPoints(2.5) 11 .FooterMargin = Application.CentimetersToPoints(0) 12 .PrintTitleRows = "$4:$4" 13 .Zoom = 50 14 .PaperSize = xlPaperA4 15 .BlackAndWhite = False 16 .Orientation = xlPortrait 17 .CenterHorizontally = False 18 .LeftHeader = "抽出条件" & Chr(10) & _ '←このヘッダー設定は問題なく適用されます 19 " 氏名:" & name_input.Value & _ 20 " №:" & const_num_input.Value & _ 21 " 件名:" & const_name_input.Value & Chr(10) & _ 22 " 期間:" & stdate & " ~ " & cldate 23 .CenterHeader = Range("A1").Value & Chr(10) & "&P/&N" 24 .RightHeader = " 分析" & Chr(10) & _ 25 "カウント:" & day_counter.Caption & _ 26 anlz 27 End With 28 Application.PrintCommunication = True 29End Sub 30' 31 32Sub 印刷設定リセット() 33 ActiveSheet.PageSetup.PrintArea = Range("データテーブル名").Address 34 ActiveSheet.PageSetup.LeftHeader = "" 35 Application.PrintCommunication = False 36 With ActiveWorkbook.ActiveSheet.PageSetup 37 .LeftHeader = "" '←ここでヘッダー表示を空白に戻したいのですが、それが自動実行だと適用されません。 38 .CenterHeader = "データテーブル名" & Chr(10) & "&P/&N" 39 .RightHeader = "" 40 .LeftMargin = Application.InchesToPoints(0.78740157480315) 41 .RightMargin = Application.InchesToPoints(0.78740157480315) 42 .TopMargin = Application.InchesToPoints(1.5748031496063) 43 .BottomMargin = Application.InchesToPoints(0) 44 .HeaderMargin = Application.InchesToPoints(0.984251968503937) 45 .FooterMargin = Application.InchesToPoints(0) 46 .Zoom = False 47 .FitToPagesWide = 1 48 .FitToPagesTall = False 49 .PrintTitleRows = "$4:$4" 50 .PaperSize = xlPaperA3 51 .BlackAndWhite = False 52 .Orientation = xlLandscape 53 .CenterHorizontally = True 54 End With 55 Application.PrintCommunication = True 56End Sub 57
回答2件
あなたの回答
tips
プレビュー