• ベストアンサー

Excel2007、pdfで保存範囲を指定する方法

VBAでの質問です。 Excel2007の名前を付けて保存のpdfでExcelファイルブック全体を保存したいのですが、 各シートの余白に計算用のセルが多数存在しており、そのまま保存を行うと それもpdf化されてしまいます。 余白を除いた部分をきれいにまとめたものを、配布用のpdfにしたいのですが VBAでpdfの保存範囲を指定することは可能でしょうか? 印刷範囲の指定は聞いたことがありますが、保存範囲の指定は聞いたことがありません。 ご存知の方がいらっしゃいましたら、ご教授お願い致します。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.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指定してあげれば大丈夫ですよ。

mutsuyama-san
質問者

お礼

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

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

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

mutsuyama-san
質問者

お礼

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

関連するQ&A

  • EXCEL2003自動再計算の範囲

    再計算を自動(セルを変更すると再計算)にした場合の、再計算の範囲を(通常ブック全体となる)当該シートのみ(他シートから参照されている、参照している場合も再計算しない)にすることはできないでしょうか。 ブック全体を再計算する場合はF9などを押すこととします。 なにかそのような処理を行うVBAマクロを埋め込み、そのボタンを押すとその設定になるようなことをする他ないでしょうか。

  • 一枚のpdf

     複数のエクセルシートをPDFにしたいのですが なぜかシフト押して全ページしても手前のシートしか出て こないです 印刷範囲をブック全体にしてもできません どうすれば出来ますか

  • エクセル・マクロ(VBA)で、指定範囲を保存したい。

    エクセルマクロ(VBA)で、セル範囲を指定してその指定した部分だけをファイルに保存したいのですが、どのようにしたらよろしいのでしょうか?

  • EXCEL2007でPDF化すると、下が印刷範囲(?)から切れてしまいます。

    エクセルのデータをPDF化すると、 各ページの下の部分が印刷範囲(?)から切れてしまいます。 これは、アクロバット、primo、クロセの全てで同じ現象になります。 印刷プレビューでは問題ないのですが、PDFにすると切れてしまいます。 余白を調整してみましたが、余白(ヘッダー位置も)を調整してもうまくいきません。 解決策をご指導お願いします。

  • 複数ワークシートの同一印刷範囲指定(エクセル)

    エクセルでのマクロについての質問です。例えば同一ブック内に、シート1で作成した「○○請求書」をコピーしてシート1と全く同じ内容の99個のワークシートを作成しました。このとき、シート1からシート100まで一部の範囲だけ(例えばセルA3からH50)を同時に印刷範囲指定するにはどのようなマクロを作成すればよいのでしょうか、マクロの参考書等も見て自分なりにチャレンジしてはみたのですがうまくいきません。(印刷範囲まで指定したシートをコピーすればよかったのかもしれませんが・・・)

  • Excel2007のVBAで、セル範囲を指定し

    Excel2007のVBAで、セル範囲を指定して画像として保存したいです。 たとえば、 Worksheets("Sheet1").Range("A1:B10").CopyPicture xlScreen, xlBitmap Worksheets("Sheet2").Paste とすれば、別のシートに指定した範囲を画像にすることはでき、 さらにこれを、 With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, "C:\test.html", _ "Sheet2", "", xlHtmlStatic, "image", "") .Publish (True) .AutoRepublish = False End With とすれば、画像を指定した場所に保存することはできると思います。 ただ、これだと無駄な処理をしているような気がしますし、実際時間も数秒必要です。 これが、グラフだと Worksheets("Sheet1").ChartObjects("グラフ1").Chart.Export Filename:="C:\graph.gif", FilterName:="gif" のように簡単に、しかも短時間で出来ます。 できれば、上記グラフのように、指定したSheetの指定したセル範囲を画像として指定した場所にPNGにて保存したいです。 どなたかご教授いただければ幸いです。

  • エクセルVBAで範囲指定の方法をおしえてください

    エクセルVBAで範囲指定の方法をおしえてください こんばんは。 以下のようにデータがあるとします。 222 111 333 555 888 999 454 665 222 111の文字列を含むセルから888の文字列を含むセルまでをVBAで範囲指定したいのですが 方法がわかりません。 エクセルに読み込むファイルによって目的の情報の位置が変わるため、文字列を基に範囲指定したいのです。 本当に困っていますよろしくお願いします。

  • excel vba 選択されたセルの範囲を別のセル

    excel vba 選択されたセルの範囲を別のセルに書き込みたい。 お世話になっております。 乱筆乱文お許し下さい。 EXCEL VBAについてですが、或るブックを閉じる時(Private Sub Workbook_BeforeClose(Cancel As Boolean))にその時点でACTIVEなsheetの名前を指定シートの指定セルに書き込み、そのブックを開く時(Private Sub Workbook_Open())に指定シートの指定セルの値の名前sheetをACTIVEにすることは出来たのですが、もう一歩進んで、 ブックを閉じる時(Private Sub Workbook_BeforeClose(Cancel As Boolean))にその時点でselectされているcellの範囲(単一セル・複数セル共に、名前がついていたら名前、ついていなければrangeを表す文字列)を指定シートの指定セルに書き込み、そのブックを開く時(Private Sub Workbook_Open())に指定シートの指定セルの値の名前cell範囲をselectするようなことがやりたいのですが、私の検索の仕方が下手で、なかなか出てきません。どなたかご教示下さい。よろしくお願いします。

  • セル範囲と図形を指定してVBAで削除するには?

    エクセルで一枚のシートに複数のオートシェイプ(○、△、□)を使用したものがあります。 オートシェイプを使用しているセルの範囲は(A1:G20)と(AP1:AX20)の二箇所なのですが、 VBAで(A1:G20)の範囲にあるオートシェイプ(○のみ)を削除する事はできますか? (A1:G20)の範囲にあるオートシェイプは全体がこのセル範囲に入っています。 手動で、オブジェクトの選択で範囲指定をした後削除という方法もあるのですが この削除の作業の前後に他のVBAを使用しているので、 VBAで削除が出来ればと思います。 いろいろ検索したのですが、セル範囲もしくは図形のいずれかを指定して 削除する方法はあったのですが、両方を指定してのVBAがわかりませんでした。 よろしくお願いいたします。

  • エクセルのマクロでシートの指定範囲をセル名で保存

    いつもお世話になっております。 だいぶ前に下記のコードを教わってあまりの便利さに非常に多くのファイルで多用しているのですが今回エクセルシートのまま保存したく。 2か所のPDFとpdfをxlmsに変更してみたのですが何故か必ずpdfで保存されるのです。 尚、保存ファイルは印刷範囲で指定でした範囲で、ページ設定通りに印刷されることも必要なので合わせてよろしくお願いします。 更に、問題ないと思うのですが、保護の範囲&編集許可の範囲指定も保持したファイルにしたいのでこれも合わせてお願い致します。 Sub 保存() Sheets("成績表(提出)").ExportAsFixedFormat Type:=xlTypePDF, _ Filename:="\\Sav01\成績書\原紙\1.成績表" & "\" & Range("E20") & ".pdf" End Sub