VBAでの印刷書式の記述について

このQ&Aのポイント
  • EXCEL2002を使用しております。マクロで、通常のページ番号から3を引いた数でページ設定したいのです。
  • マクロで、フッターを設定しております。With ActiveSheet.PageSetup .CenterFooter = "&P-3" End With このようにすると、印刷される文字列が「33」となってしまいます。
  • 「1」と表示するには、上記CenterFooterの設定はどのようにすればよろしいでしょうか?
回答を見る
  • ベストアンサー

VBAでの印刷書式の記述について

EXCEL2002を使用しております。 マクロで、通常のページ番号から3を引いた数でページ設定したいのです。 たとえば、以下のシート構成の時、 1シート目:表紙 2シート目:目次 3シート目:本文 1シート目から3シート目範囲選択し、印刷する。 このとき、3シート目から1ページとしたいのです。 マクロで、フッターを設定しております。 With ActiveSheet.PageSetup   .CenterFooter = "&P-3" End With このようにすると、印刷される文字列が「33」となってしまいます。 「1」と表示するには、上記CenterFooterの設定はどのようにすればよろしいでしょうか?

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

  • ベストアンサー
  • NOBBB
  • ベストアンサー率26% (82/308)
回答No.2

失礼いたしました。。。 .CenterFooter = "&P-3&" こうするとうまくいきます。 というか、1ページから「-2」、「-1」、「0」、「1」・・・ となってしまいます。。。 これは目的のものではありませんよね。。。 私はこれ以上分からないので他の回答者様に。。。 申し訳ありません。。。

kouziii
質問者

お礼

ありがとうございました。 解決できました。 最後に&をつけるんですね。 問題なく解決です。

その他の回答 (1)

  • NOBBB
  • ベストアンサー率26% (82/308)
回答No.1

>.CenterFooter = "&P-3" この記述途中にカーソルを持って行きF1を押してください。 そうするとヘルプが開きます。 .C|enterFooter = "&P-3"・・・・・「|」はカーソル(入力位置?)のつもり こんな感じです。 そのヘルプにリンクできる「書式」と書かれた箇所があるとおもいます。 その先にkouziii様が行いたいことが書かれているはずです。。。 (私は2003で試したのでちょっと自信ない。。。) コピペしようかと思いましたが、たぶんkouziii様にとって 有益なことばかりだと思いヘルプ参照という形をとりました。

kouziii
質問者

補足

ヘルプを見て、質問のようにしてみたのですが、うまくいかないので、聞いてみた次第です。 ペルプには&P+<数値>と書いてあり、 "&P+<3>"と書くと、"3<3>"と表示されるのです。

関連するQ&A

  • 【Excel VBA】印刷について

    Excel2003を使用しています。 不要ページをスキップして印刷するマクロを作成し、特定のBookでのみ使用しているのですが、このBookを印刷するときはカラー印刷を指定したいので、この印刷マクロの中でカラー印刷を指定できたらと思っているのですが、このようなことは可能でしょうか?可能であれば、どのように記述すればいいでしょうか? ページ設定のマクロの記録をとったところ、下記のように(不要と思われる設定は削除しました)記述されていました。 [BlackAndWhite = False]という部分がカラー印刷に関するコード?かと思い、追加してみたのですが、カラー印刷されませんでした。 With ActiveSheet.PageSetup .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 98 .PrintErrors = xlPrintErrorsDisplayed End With よろしくお願いします。

  • 印刷範囲を設定するvbaコード

    エクセルシートの印刷範囲を設定するvbaコードで Sub Macro1() With ActiveSheet.PageSetup .PrintArea = "$A$1:$c$10" End With End Sub としてるのですが、 "$A$1:$c$10"の部分を Range(Cells(1, 1), Cells(10,3)) 形式でやりたいのですが、 うまくできません。 Sub Macro1() With ActiveSheet.PageSetup .PrintArea = Range(Cells(1, 1), Cells(10,3)) End With End Sub としても、全部が印刷範囲として選択されてしまいます。 というか、印刷範囲が設定されません。

  • エクセルVBA印刷範囲指定とヘッダーフッター

    1か月のうちの前期と後期のシートがそれぞれあり、前期シートを範囲指定して領収書の一部を印刷したいのですがなぜか、前に作ったヘッダーとフッターが前期だけ印刷されてしまいます。 どこに隠れているのか謎なのです。前に悩みながら作ったシートがどこかに隠れているのでしょうか? また、同じ様式のシートなのですが前期は80%にしなくてもなぜか一枚に収まります。 不思議でなりません・・・全部消したはずなのですが Sub 印刷範囲設定領収書前期() With Worksheets("領収前期") .PageSetup.PrintArea = "G1:BB91" .PrintPreview End With End Sub Sub 印刷範囲設定領収書後期() With Worksheets("領収後期") .PageSetup.Zoom = 80 .PageSetup.PrintArea = "G1:BB91" .PrintPreview End With End Sub

  • 【Excel VBA】図の印刷有無の設定

    Excel2003を使用しています。 あるシートに数10ページ分の同じ書式があり、それぞれ同じ位置に『図 68』が貼り付けてあります。 これを2部印刷するのですが、1部は『図 68』を印刷せず、もう1部は『図 68』も印刷します。 この『図 68』の印刷の有無の設定をマクロで処理したく、マクロの記録を元に下記のようにコードを書いて試してみたところ、1ページ目の『図 68』にしか印刷の設定ができていませんでした。 『図 68』は、2ページ目以降は1ページ目の図をコピペしたもので、名前は全部同じように表示されていますが、実際のところ(?)それぞれ名前が違うのでしょうか? 図の設定に関するマクロは初めてのこともあり、よくわかりません。どのようにしたら、うまく設定できるでしょうか? よろしくお願いします。 ---------------------------------------- Sub Macro1()  ActiveSheet.Shapes("図 68").Select   With Selection    .Placement = xlMove    .PrintObject = False   End With End Sub ----------------------------------------

  • VBAの範囲印刷設定を修正したいのですが

    VBAの初心者です。詳しく教えてください。 1.下記のVBAでシートを非表示にしたときに実行時エラー1004が出るのですが  どうしたらよいのですか。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Sub printappointedrange() Worksheets("シート1").Activate Range("A1:AB42").Select 'セル範囲の選択 With ActiveSheet .PageSetup.PrintArea = Selection.Address '印刷範囲の指定 .PrintOut '印刷 .PageSetup.PrintArea = False '印刷範囲のクリア End With End sub ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 2.シートに印刷ボタン作成して、印刷はできるのですが、印刷する前にプリンターの設定を変更する方法は無いのですか。

  • VBAの印刷について

    VBAでの質問です。 ある処理を施したあとにページ設定をして印刷するプログラムを作成しているのですが、なぜか同じものが2枚出力されてしまいます。 1枚だけ指定して印刷するにはどのようにコードを書けば良いかどなたか教えて下さい。お願いします。 With ActiveSheet.PageSetup 'ページ詳細設定 .PaperSize = xlPaperA4 .Zoom = False .FitToPagesTall = 1       .FitToPagesWide = 1     End With 'ActiveSheet.PrintOut Worksheets(sheetname5).PrintOut ActiveWorkbook.SaveAs Filename:=takiicode & "_" & Format(today, "yyyymmdd") & ".xls" '保存) Workbooks(takiicode & "_" & Format(today, "yyyymmdd") & ".xls").Close SaveChanges:=True '終了

  • ExcelのVBAで得た結果を転記したい

    Excelで,ひとつのブックの余白や印刷倍率,印刷品質を表示するのに,次のようなVBAを用いています. '上余白を表示する ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.TopMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の上余白は " & marginInches & " センチです。" End With '下余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.BottomMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の下余白は " & marginInches & " センチです。" End With '左余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.LeftMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の左余白は " & marginInches & " センチです。" End With '右余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.RightMargin / _ Application.CentimetersToPoints(1) MsgBox "現在の右余白は " & marginInches & " センチです。" End With 'ヘッダー余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.HeaderMargin / _ Application.CentimetersToPoints(1) MsgBox "現在のヘッダーは " & marginInches & " センチです。" End With 'フッター余白を表示する With ActiveSheet.PageSetup marginInches = ActiveSheet.PageSetup.FooterMargin / _ Application.CentimetersToPoints(1) MsgBox "現在のフッダーは " & marginInches & " センチです。" End With '印刷倍率を表示する With ActiveSheet.PageSetup Zoom = ActiveSheet.PageSetup.Zoom MsgBox "現在の印刷倍率は " & Zoom & " パーセントです。 " End With '印刷品質を表示する Dim PrintQuality As Variant With ActiveSheet.PageSetup PrintQuality = .PrintQuality(1) MsgBox "現在の印刷品質は" & PrintQuality & "dpiです。" End With 現在,ツールバーのボタンをおして起動させているのですが, シート数が多い時は手間になり,困っています. (ボタンのコードは以下) Private Sub Workbook_AddinInstall() Dim myBar As CommandBar Dim CKB1 As CommandBarButton Dim Exist As Boolean For Each myBar In Application.CommandBars '名前が"余白"であるならばフラグを立てる If myBar.Name <> "余白" Then Exist = False Else Exist = True If Exist = True Then Exit For Next myBar '既に作成されていなければ新規作成 If Exist = False Then _ Set myBar = Application.CommandBars.Add(Name:="余白", Position:=msoBarTop) With myBar Set CKB1 = .Controls.Add(Type:=msoControlButton) CKB1.Caption = "余白" With CKB1 .Style = msoButtonCaption .FaceId = 266 .Parameter = "余白" .OnAction = "余白" End With .Visible = True End With Set myBar = Nothing Set CKB1 = Nothing End If End Sub そこで, シートごとに上記の余白等の結果を, テキストファイルなどに転記できるようにしたいのですが, VBAで可能でしょうか? (以下のような感じです) sheet1 上:40 下:20 左:30 右:10 倍率:98 品質:600

  • 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 このように記述されますが、どのように加工したらよろしいでしょうか? 教えてください。

  • EXCELで印刷範囲指定

    マクロの記録で印刷範囲の指定を考えています。 以下のマクロを記録しました。 Sub 印刷範囲指定() Cells.Select With Selection.Font .Name = "MS Pゴシック" .Size = 9 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Range("A1").Select With ActiveSheet.PageSetup .PrintTitleRows = "$6:$8" .PrintTitleColumns = "" End With ActiveSheet.PageSetup.PrintArea = "" With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "&A" .RightHeader = "" .LeftFooter = "" .CenterFooter = "&P / &N ページ" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.78740157480315) .RightMargin = Application.InchesToPoints(0.78740157480315) .TopMargin = Application.InchesToPoints(0.984251968503937) .BottomMargin = Application.InchesToPoints(0.984251968503937) .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 = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 End With ActiveWindow.View = xlPageBreakPreview ActiveWindow.LargeScroll ToRight:=1 ActiveSheet.PageSetup.PrintArea = "$A$1:$I$50" ActiveWindow.View = xlNormalView Columns("B:I").Select Columns("B:I").EntireColumn.AutoFit Range("A1").Select End Sub やりたいことは ・まず最初にcsvファイルをxlsファイルに取り込む機能をつけたい。 ・取り込んだcsvをシートの一番最後につける。 そのファイルを以下のように設定していきたいです。 ・列の印刷範囲を数ある列のうちA列からI列までとする。 ・行の印刷範囲をA列の最終行までとしたい。 上記マクロでここを修正すればいいというところがあれば教えてください。。

  • Excelでのページ番号付与について(WindowsXP)

    Excelでのページ番号付与について(WindowsXP) 何枚かのシートがあるファイルに一括でヘッダー・フッターを付けたいと思っています。 Sub SetHeader() Dim mySheet As Worksheet Application.ScreenUpdating = False For Each mySheet In ActiveWindow.SelectedSheets With mySheet.PageSetup .LeftHeader = "左ヘッダー" .CenterHeader = "中央ヘッダー" .RightHeader = "右ヘッダー" .LeftFooter = "左フッター" .CenterFooter = "中央フッター" .RightFooter = "右フッター" End With Next Application.ScreenUpdating = True End Sub 上記のようにマクロを作成したのですが、選択したシートの連番という単純な物ではなく ちょっと面倒なページ表示をしなければいけなくなりました。 一つのファイルの中で 1シート目→1ページ 2シート目→3ページ 3シート目→2ページ などとなっている場合 1枚目→1 2枚目→2-1/3    2-2/3    2-3/3 3枚目→3-1/2    3-2/2 というようなページ表示にしたいのですが、どのようにマクロを組めばいいかわからなくて困っています。 よろしくお願いいたします。  

専門家に質問してみよう