- ベストアンサー
Exsel2000ページ設定(VBA)での余白設定について
- Exsel2000ページ設定(VBA)での余白設定について解説します。
- ワークシートを何ページに収めて印刷するか設定できるが、余白設定は無視されるのか疑問。
- VBAのPageSetupでは余白設定が無視されるため、横がはみ出した場合のページ設定についても考慮する必要がある。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- Excelのマクロで印刷設定をすると遅くなる
Excelのマクロについて 久しぶりに質問させていただきます。 マクロで印刷の設定をすると 遅くなるのでしょうか? Range("A1:Z10").Select With ActiveSheet.PageSetup .Orientation = xlLandscape .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .TopMargin = Application.CentimetersToPoints(1) .BottomMargin = Application.CentimetersToPoints(1) .LeftMargin = Application.CentimetersToPoints(1) .RightMargin = Application.CentimetersToPoints(1) End With Selection.PrintPreview というようなマクロを作って実行すると プレビュー画面が出るまでに かなり時間がかかるのです。 職場のパソコンであるため パソコンそのものがかなり古いのですが マクロを使わずに直接、印刷の設定をすれば すぐにプレビューが表示されます。 ただ、同じシートをいろいろな方法で印刷する必要があるため マクロを組んでみたわけです。 ちょっと我慢すればいいだけで 仕事そのものに大きく影響するわけではありませんが 皆様のご助言をよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAでシートの余白を統一したい。
こんばんは。 EXCEL VBAでひとつのファイルの中のすべてのシートの余白とA4横サイズに統一したいのです。 マクロの記録をとると With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.393700787401575) .RightMargin = Application.InchesToPoints(0.393700787401575) .TopMargin = Application.InchesToPoints(0.393700787401575) .BottomMargin = Application.InchesToPoints(0.393700787401575) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 .PrintErrors = xlPrintErrorsDisplayed End With End Sub このように記述されますが、どのように加工したらよろしいでしょうか? 教えてください。
- ベストアンサー
- オフィス系ソフト
- ExcelVBAの改ページの区切り位置が変更不可
下記のようなコードで印刷プレビューを出して印刷するようにしたいのですが、改ページの位置が思い通りに変更されません。 3ページに印刷で、A19(B19)の行から2ページ目とA37(B37)の行から3ページ目にしたいのですが、印刷プレビューを見るとA20の行から2ページ目でA38の行から3ページ目になってしまいます。 HPageBreaks.Add Before:=Range("A19")←ここを色々違うセルに変えたり別のコードにかえたりしても、まったく反映されません。何かが邪魔をしているのでしょうか? どうしたら、任意の位置で改ページできるでしょうか?お願いいたします。 Sub 印刷プレビュー設定() Dim s As Worksheet Set s = ThisWorkbook.ActiveSheet With s '列非表示 .Columns("I:I").Select Selection.EntireColumn.Hidden = True 'ワークシートを選択、印刷範囲指定する .Select ActiveSheet.PageSetup.PrintArea = "$B$1:$O$54" '余白設定 .PageSetup.TopMargin = 0 .PageSetup.BottomMargin = 0 .PageSetup.LeftMargin = 0 .PageSetup.RightMargin = 0 '水平位置の中央へ .PageSetup.CenterHorizontally = True '垂直位置の中央へ .PageSetup.CenterVertically = True '用紙を横向きに設定 .PageSetup.Orientation = xlLandscape '用紙サイズを設定 .PageSetup.PaperSize = xlPaperA4 '印刷範囲を指定ページに収めて印刷プレビューを表示する .PageSetup.Zoom = False '拡大縮小倍率をFitToPagesの設定に収める .PageSetup.FitToPagesTall = 3 '縦の枚数 .PageSetup.FitToPagesWide = 1 '横の枚数 ActiveSheet.HPageBreaks.Add Before:=Range("A19") ActiveSheet.HPageBreaks.Add Before:=Range("A37") .PrintPreview End With End Sub
- ベストアンサー
- Excel(エクセル)
- エクセルVBAで複数ページのページ設定
SheetAAAA,SheeetBBBB,SheetCCC,SheetDDDDの4枚(すべてのシートです)を選択し、ページ設定をしてマクロの記録をとりました。 Sub Macro6() Sheets(Array("AAAAA", "BBBBB", "CCCCC", "DDDDD")).Select Sheets("AAAAA").Activate With ActiveSheet.PageSetup .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With End Sub (不必要部分はカットしました) 自分で4枚を同時選択しページすると4枚すべてに反映するのですが、マクロの記録でつくったMacro6だと、1枚のシートにしか設定が反映されません。 どう直せばいいのでしょうか?よろしくお願いします。
- 締切済み
- オフィス系ソフト
- Excel2003VBA 印刷設定
お世話になります。 下記、手入力による(?)印刷設定のコードなのですが不要な行をご教示いただきたく投稿致しました。 ・設定した内容は上下左右の余白を「0」にした。 ・用紙サイズと向きを選択した。 ・「1ページにあわせる」ように設定をした。 だけなのですが、恐らく単なる「マクロ記録」を利用したので余計な記述も含まれていると思います。 すでに削除してありますが 上から4行ほど何かを「""」という設定があったので 「勘」で削除し 動作確認ではOKでした。 でも見れば見るほど迷いが生じ どなたか ご存知の方にご教示いただこうと投稿致しました。 不要な行をご教示ください。 宜しくお願い致します。 Sub 印刷設定_A3横() ' ' 印刷設定_A3横 Macro ' マクロ記録日 : 2009/5/14 ' ' With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(1) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0.511811023622047) .FooterMargin = Application.InchesToPoints(0.511811023622047) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .PrintQuality = 600 .CenterHorizontally = False .CenterVertically = False .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA3 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True, Collate:= _ True End Sub
- ベストアンサー
- オフィス系ソフト
- ExcelVBAで印刷設定の拡大率を取得する方法
お世話になります。 ExcelVBAで、横の幅をいっぱいにとったときの拡大率を取得しようとしていますが、うまくいかず困っております。 With Worksheets(1).PageSetup .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1000 End With で横1ページに合わせて印刷できる設定になりますが、このときの拡大率(Zoom)を変数に代入することができません。どなたか、お助けいただけないでしょうか。 どうか、よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル記録したマクロを実行するとエラーがでます
マクロを記録させ、実行しようとするとエラーがでます。 エラーメッセージは、 「コンパイルエラー 印数は省略できません。」 で、エラー箇所は下記の☆と☆の間です。 End With With ActiveSheet.PageSetup .LeftMargin = Application.InchesToPoints(0.31) .RightMargin = Application.☆InchesToPoints☆() .TopMargin = Application.InchesToPoints() .BottomMargin = Application.InchesToPoints() .HeaderMargin = Application.InchesToPoints() .FooterMargin = Application.InchesToPoints() .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 .PrintErrors = 1620 End With 当方マクロの知識がないもので なぜそうなったのか、どうすれば解決するのかわかりません。 お力を貸して下さい。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロについて
エクセルの印刷マクロを作りましたが、動作が非常に遅いのです。 スタッフ用と管理者用のマクロを作り、スタッフ用が遅いのです。 余計なものが含まれているのでしょうか? お願いします。 Sub スタッフ() ' スタッフ Macro ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$55" With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$55" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 76 .PrintErrors = xlPrintErrorsDisplayed End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$60" With ActiveSheet.PageSetup .PrintTitleRows = "" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "$A$1:$AJ$60" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0) .RightMargin = Application.InchesToPoints(0) .TopMargin = Application.InchesToPoints(0) .BottomMargin = Application.InchesToPoints(0) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 70 .PrintErrors = xlPrintErrorsDisplayed End With Range("A1").Select End Sub
- ベストアンサー
- オフィス系ソフト
- EXCELの複数のシートに同じページ設定をしたいです
いつもお世話になっております。 マクロに初挑戦です。 すでに作成してあるブックに、同じページ設定をしたいです。 「マクロの記録」で、以下のマクロを作成しました。 Excel2003です。 Sub PageSetting() ' Keyboard Shortcut: Ctrl+Shift+F With ActiveSheet.PageSetup .RightHeader = "&A" '右上にシート名 .CenterFooter = "- &P -" '下中央にページ番号 .RightMargin = Application.InchesToPoints(0.393700787401575) '右余白1cm .TopMargin = Application.InchesToPoints(0.78740157480315) '上余白2cm .BottomMargin = Application.InchesToPoints(0.393700787401575) '下余白1cm .HeaderMargin = Application.InchesToPoints(0.590551181102362) 'ヘッダー1.5cm .FooterMargin = Application.InchesToPoints(0.196850393700787) 'フッター0.5cm End With End Sub ブック内のすべてのシートに適用するわけではないので、 複数シートを選択しておいて(作業グループ)、 まとめて適用したいのですが、どうすればよいのでしょうか? 今現在は、設定したいシートを1つずつ選択して、 Ctrl+Shift+F を押しています。 よろしくご指導お願い致します。
- ベストアンサー
- オフィス系ソフト
- EXCEL97で印刷がB4になってしまう!
エクセルで横長の表を作成しました。 多少大き目なので印刷範囲を指定し、ページ設定で「拡大縮小印刷」で横1×縦1ページを選択しました。用紙サイズもA4を指定しました。(その結果縮小率は91%となります。) ところが印刷をかけると自動的にB4になってしまうのです。プリンターにはB4用紙を入れていませんので毎回印刷エラーになってしまいます。(B4用紙を入れればOK) そこでVBAでやってみようと、下記のようにしてみました。 Sub 表印刷() With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.590551181102362) .RightMargin = Application.InchesToPoints(0.590551181102362) .TopMargin = Application.InchesToPoints(0.118110236220472) .BottomMargin = Application.InchesToPoints(0.118110236220472) .HeaderMargin = Application.InchesToPoints(0) .FooterMargin = Application.InchesToPoints(0) .PrintHeadings = False .PrintGridlines = False .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub しかしこれでやっても同じ結果でした。 なお、同ブックの他のページの表は正常に縮小印刷ができます。 原因と対策がまったくわからず困っています。 お助けください。
- ベストアンサー
- オフィス系ソフト
お礼
度々のご回答。ありがとうございます。 GET.DOCUMENT(65)の参考URLを見てみましたが「Excel 2000 Help File: Running Excel 4.0 Macros」のことですよね? 確かに英語サイトのようでどこを見てよいやらわかりませんでした。 あとで、もう少しちゃんと見てみます。 「物理的左余白」の問題ですが、実際下にも書きましたが「0」を入力すると、5mmほどの余白が空きます。私は印刷機の設定なのではないかと思うのですが下の余白を「0」にすると本気でぎりぎり「0mm」まで印刷されるのでどういう設定になっているかは良くわかりません。(下は下でまた左右とは別の設定が入ってるのかもしれないし) >65536行の一番下から、End(XlUp) ではないのですか? 最終列の最終行にデータが入ってるかはデータが来てみないとわからないことなので、これを使うのはちょっと賭けみたいなことになってしまいます。 データの行の終点はデータが入っている列の全てから見た一番下の行でしょうか?(10行程度のこともあれば100行近くまでデータがあることもあるので) これはエクセルがどこを認知するかに任せてしまってます。縦が途中で切れて次のページになるのは大丈夫なので。 ながながとお付き合いありがとうございました。