• ベストアンサー

【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 ----------------------------------------

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

  • ベストアンサー
  • izmlz
  • ベストアンサー率55% (67/120)
回答No.2

↓だとどうでしょう? 実行する度に「オブジェクトを印刷」のTrueとFalseを入れ替えるようにしています。 Sub test()  Dim myShape As Shape    For Each myShape In ActiveSheet.Shapes   If myShape.Name = "図 68" Then    myShape.ControlFormat.PrintObject = Not (myShape.ControlFormat.PrintObject)   End If  Next End Sub

参考URL:
http://www2.odn.ne.jp/excel/waza/macro.html
rx-z5815
質問者

お礼

回答ありがとうございます。 早速、教えていただいたコードで試してみたところ、うまくいきました。 “実行する度に”というところが、元々手作業でしていたことそのままという感じで、使い勝手が良いです。 ボタンに登録して使わせていただきます。 ありがとうございました!

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

Sub TEST01() With ActiveSheet.Pictures .Placement = xlMove .PrintObject = False End With End Sub ではどうでしょうか?

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいたように、“With ActiveSheet.Pictures” と書き換えたところ、希望通りのことができました。 ありがとうございました!

関連するQ&A

  • 印刷範囲を設定する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 としても、全部が印刷範囲として選択されてしまいます。 というか、印刷範囲が設定されません。

  • Excel2007のVBAにて印刷を指定枚数設定しようと思いましたが、

    Excel2007のVBAにて印刷を指定枚数設定しようと思いましたが、下記マクロでテストしたところ 2枚ではなく、何故か1076枚を印刷しようとしてきます。 印刷範囲も2枚しかないので、どこがおかしいのかが分りません。 分かる方いましたらご教授願います。 Sub Macro1() dim as i integer i = 2 ActiveWorkbook.PrintOut Copies:=i End Sub

  • 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

  • 【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で複数ページのページ設定

    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枚のシートにしか設定が反映されません。 どう直せばいいのでしょうか?よろしくお願いします。

  • VBAでA3サイズに印刷したい

    Sub Macro4() ' ' Macro4 Macro ' マクロ記録日 : 2007/5/23 ユーザー名 : Administrator ' ' Sheets("印刷").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub マクロの自動作成でこのように作りました これをA4からA3に拡大印刷したいのですが、どのようにしたら良いのでしょうか教えてください、よろしくお願いします。

  • Excel VBAで自動印刷プログラムの作り方を教えて下さい。

    あるファイルにある全てのグラフを印刷するマクロを作りたいのですが、 どのようにすれば良いのでしょうか? Sub Macro2() ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End Sub に何を付け足せば良いのでしょうか? 何卒よろしくお願い致します。

  • Excel VBAで他のシートを印刷するとき

    シート1からシート2を表示しないで印刷したいんですが下の記述だと一瞬ですがシート2が表示されます、どのようにすればシート1のままシート2を印刷することができるのでしょうか、よろしくお願いします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2004/7/23 ユーザー名 : H ' Sheets("Sheet2").PrintOut Copies:=1, Collate:=True End Sub

  • マクロを使って両面 部数設定をして印刷したい

    ぜひ教えてください。 エクセル2010です。 現在 下記で印刷していますがこれに 両面 部数設定U1 にて 印刷ができるようにしたいのです。 ぜひマクロを教えてください。 (マクロの知識がなく 下のマクロもコピーで使用しています) Sub 印刷() With Sheets("シート書") For num = .Range("s1").Value To .Range("t1").Value .Range("r7").Value = num .PrintOut Next num End With End Sub

  • EXCEL 2003におけるVBA,マクロ、改ページ操作と印刷設定について

    EXCEL 2003における VBA、マクロについての質問です。 CSVデータを読み込んで、1度マクロを作動させて、 再度違うCSVデータを取り込んで表示したいので、シートフォーマットプロシージャを設定しましたが、改ページの調整が、わからないのでページ操作が毎回おかしくなってしまいますので誰か教えていただけないでしょうか。 '####################################################### ' セルフォーマット プロシージャ '####################################################### Sub clearcell() Worksheets("Sheet1").Activate Selection.CurrentRegion.Select Selection.ClearContents Selection.Borders.LineStyle = xlLineStyleNone ★★ 'ページ操作についても、もとの状態にしたい' 'もしくは、1ページ何列で、何行までという指定が 'したいです。' ★★ End Sub 悩み(3) 印刷プロシージャにおいて、詳細な印刷設定が行いたい。 '####################################################### ' 印刷 プロシージャ '####################################################### Sub copypage() ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Sub このような、印刷はできましたが、 詳細を設定できる、プロシージャの例があれば、教えて いただければ幸いです。 よろしくお願いいたします。

専門家に質問してみよう