プロが教えるわが家の防犯対策術!

VBAでの質問です。
Excel2007の名前を付けて保存のpdfでExcelファイルブック全体を保存したいのですが、
各シートの余白に計算用のセルが多数存在しており、そのまま保存を行うと
それもpdf化されてしまいます。

余白を除いた部分をきれいにまとめたものを、配布用のpdfにしたいのですが
VBAでpdfの保存範囲を指定することは可能でしょうか?

印刷範囲の指定は聞いたことがありますが、保存範囲の指定は聞いたことがありません。

ご存知の方がいらっしゃいましたら、ご教授お願い致します。

A 回答 (2件)

何かよくわからないけどExcel2007で良いのですよね。


[PDFまたはXPS形式で発行]はSave|SaveAsメソッドとは違いますからねえ?

発行の前に[オプション]で『発行対象』を選択できるようになってますから試してみてください。
マクロ記録も取れます。

Sub Macro1()
'
' Macro1 Macro
'

'
  Selection.ExportAsFixedFormat Type:=xlTypePDF, _
                 Filename:="C:\@doc\Book1.pdf", _
                 Quality:=xlQualityStandard, _
                 IncludeDocProperties:=True, _
                 IgnorePrintAreas:=False, _
                 OpenAfterPublish:=True
End Sub

SelectionをRange指定してあげれば大丈夫ですよ。
    • good
    • 1
この回答へのお礼

仰る通りにしたら出来ました!ありがとうございます!

お礼日時:2011/01/12 16:37

PrintOutはシート(オブジェクト)のRangeのメソッドです。


SaveやSaveAsはWorkbook(オブジェクト)のメソッドです。そのメソッドの引数に、シートやシートのRangeを指定する引数がありますか。
調べてから、質問しましたか。そういう引数が無いと思います。
引数に無いということは(そのように作られておらず)出来ないということです。
VBAのメソッドやプロパティ(の存在か存在しないか)について、そういう考え方をしてますか。
ーー
新しいそれ用のブックやシートをそのために造らなければならないと思います。
ーー
それ向けに作ったアドインなどあれば話は別です。
    • good
    • 0
この回答へのお礼

確かにSaveAsの引数にRangeを指定する話など聞いたことありません。
当方、今までExcel2003を使用しており、Excel2007にバージョンアップした際
新たにそのような機能が付いていることを期待したのですが、無さそうですね。
ご指摘ありがとうございました。

お礼日時:2011/01/06 08:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!