- ベストアンサー
【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 ----------------------------------------
- rx-z5815
- お礼率86% (485/559)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (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
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
Sub TEST01() With ActiveSheet.Pictures .Placement = xlMove .PrintObject = False End With End Sub ではどうでしょうか?
お礼
回答ありがとうございます。 教えていただいたように、“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 としても、全部が印刷範囲として選択されてしまいます。 というか、印刷範囲が設定されません。
- ベストアンサー
- Excel(エクセル)
- 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 に何を付け足せば良いのでしょうか? 何卒よろしくお願い致します。
- ベストアンサー
- Visual Basic
- 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 このような、印刷はできましたが、 詳細を設定できる、プロシージャの例があれば、教えて いただければ幸いです。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございます。 早速、教えていただいたコードで試してみたところ、うまくいきました。 “実行する度に”というところが、元々手作業でしていたことそのままという感じで、使い勝手が良いです。 ボタンに登録して使わせていただきます。 ありがとうございました!