2017-12-20 27 views
-1

こんにちは私のスプレッドシートをPDFにエクスポートするボタンがあります。Visual Basic(Excel)1ボタンで2マクロを実行しますか?

私はそのボタンをドキュメントをエクスポートして、 "Excel Calculator"というフォルダに保存したいと考えています。現在のところ、作成するフォルダまたはエクスポートするドキュメントのみを取得できます。一度に両方のコマンドを実行する方法がわからないので、ドキュメントがエクスポートされ、Excelの電卓フォルダに保存されます。

また、私は指定したようにD:\に行くのではなく、ファイルパスを変更することで、ユーザー "My Documents"フォルダを見つけます。

Sub GetFilenameForPDF() 
Dim strFileName As String, strB1 As String, strWorksheet As String 


strB1 = Range("B1").Value 
strWorksheet = ActiveSheet.Name 
strFileName = strB1 & " " & strWorksheet & " " & Format(Date, "DD-MM-YYYY") 


End Sub 

Sub NewFolder() 

Dim fso As FileSystemObject 
Dim folderName As String 

Set fso = New FileSystemObject 
folderName = "D:\Excel Calculator" 
If fso.FolderExists(folderName) = False Then 
    fso.CreateFolder folderName 
End If 

Dim strFileName As String, strB1 As String, strWorksheet As String 
strB1 = Range("B1").Value 
strWorksheet = ActiveSheet.Name 
strFileName = folderName + "\" + strB1 & " " & strWorksheet & " " & 
Format(Date, "DD-MM-YYYY") 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "D:\" & strFileName & ".pdf", _ 
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
:=False, OpenAfterPublish:=True 
End Sub 

Sub SaveToPDF() 

Dim strFileName As String, strB1 As String, strWorksheet As String 
strB1 = Range("B1").Value 
strWorksheet = ActiveSheet.Name 
strFileName = strB1 & " " & strWorksheet & " " & Format(Date, "DD-MM-YYYY") 

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "D:\" & strFileName & ".pdf", _ 
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
    :=False, OpenAfterPublish:=True 
    End Sub 

答えて

0

複数のマクロを順番に呼び出すことができます。あなたはマクロfullSequenceにあなたのボタンをリンクする場合たとえば、あなたが最初のフォルダの作成を実行することができますし、そのフォルダにファイルの書き出し:

Sub fullSequence() 
    createFolder '<-- call macro 1 
    exportFile '<-- call macro 2 
End Sub 

あなたの特定のケースでは、あなただけに必要このことからマクロNewFolderのコードを変更:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    "D:\" & strFileName & ".pdf", _ 
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
:=False, OpenAfterPublish:=True 

...これに:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
    folderName & "\" & strFileName & ".pdf", _ 
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ 
:=False, OpenAfterPublish:=True 

...を含めるために、 10(既にフォルダパスがある場所)をエクスポートFilenameパラメータに追加します。

+0

こんにちは、お返事 ためのおかげで私は、 '完全なsequence'サブを追加し、' SaveToPDF() 'の名前とただし'フルsequence' に呼び出されているマクロを一致させるために 'NewFolder'潜水艦を変更今すぐマクロにボタンをリンクすると、エラーが表示されます。「システムエラー&H8007007B(-2147024773)」 – sam

関連する問題