2016-03-22 15 views
0

VBAが新しく、ファイルのベース名を使用して自動的にファイルをPDFファイルとして保存するマクロを作成しようとしています。このトピックはさまざまなサイトでかなり扱われていましたので、必要なコードのほとんどを手に入れることができましたが、何らかの理由で私は最後のステートメントでうまくいっています。これまで私がこれまで持っていたことは次のとおりです。ファイル名と特定のファイルパスを使用してファイルをPDFとして保存する

Sub SaveAsPDF() 

Dim SaveDirectory As String 
Dim SaveFileName As String 
Dim BaseName As String 
Dim fso 

SaveDirectory = Environ("Userprofile") & "\Dropbox\Operations\VBA Projects\" 

Set fso = CreateObject("Scripting.FileSystemObject") 

BaseName = fso.GetBaseName(ActiveWorkbook.Name) 

SaveFileName = SaveDirectory & BaseName & ".pdf" 

Sheets(Array("Page1", "Page2")).ExportAsFixedFormat Type:=xlTypePDF, _ 
               FileName:=SaveFileName, _ 
               Quality:=xlQualityStandard, _ 
               IncludeDocProperties:=True, _ 
               IgnorePrintAreas:=False, _ 
               OpenAfterPublish:=False 

End Sub 

私はコード全体をデバッグすると、その最後のステートメントが強調表示されます。私は "mは間違っているのかわからない。

+1

それはラインを強調したときに、それは投げるんどのようなエラー – BruceWayne

+0

実行時エラー「438」:。?それは私のためだけで正常に動作 – MilesToGoBeforeISleep

答えて

1

何らかの理由で、ExportAsFixedFormat方法は、シートの配列を直接操作しません。

以下(それはSelectまれなケースの一つだとActivateに動作します)エクセルVBAで必要な

Sheets(Array("Page1", "Page2")).Select 
Sheets("Page1").Activate 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
               FileName:=SaveFileName, _ 
               Quality:=xlQualityStandard, _ 
               IncludeDocProperties:=True, _ 
               IgnorePrintAreas:=False, _ 
               OpenAfterPublish:=False 
+3

オブジェクトはこのプロパティまたはメソッドをサポートしていません。起動ステートなしent - 私はちょうどあなたに非常に似たような答えを投稿しようとしていました。 ThisWorkbook.Sheets(Array( "Page1"、 "Page2"))。 – Miqi180

+1

Brilliantを選択します。スコットに感謝します。 Activate文が必要ないMiqiと同意する。 – MilesToGoBeforeISleep

+0

[ワークブック内の一連のシートのみを印刷する場合は、選択して有効化する必要はありません。](http://stackoverflow.com/a/36107539/4088852) – Comintern

関連する問題