Microsoft ExcelでVBAを使用して、フォルダ内のすべてのブックを印刷
この記事では、フォルダー内のすべてのExcelファイルを印刷するマクロを作成します。
印刷したいフォルダ内にいくつかのExcelファイルがあります。それらはすべて同じファイル拡張子「.xlsx」を持っています
コードの説明
Dir(TargetFolder&FileFilter)
上記のコードは、フォルダーパス内の最初のファイルのファイル名を取得するために使用されます。
Workbooks.Open TargetFolder&FileName上記のコードは、定義されたワークブックを開くために使用されます。
ActiveWorkbook.PrintOut上記のコードは、アクティブなワークブックを印刷するために使用されます。
コードについては以下に従ってください
Option Explicit Sub PrintAllWorkbooksInFolder(TargetFolder As String, FileFilter As String) 'Declaring variable Dim FileName As String 'Disabling screen updates Application.ScreenUpdating = False 'Adding path separator in the end of target folder name If Right(TargetFolder, 1) <> "\" Then TargetFolder = TargetFolder & "\" End If 'Assigning default path to file filter If FileFilter = "" Then FileFilter = "*.xls" 'Get the file name of first file in the folder FileName = Dir(TargetFolder & FileFilter) While Len(FileName) > 0 If FileName <> ThisWorkbook.Name Then 'Open workbook Workbooks.Open TargetFolder & FileName 'Prints all sheets in the workbook ActiveWorkbook.PrintOut 'Close the workbook without saving any changes ActiveWorkbook.Close False End If 'Get file name of next file in the folder FileName = Dir Wend End Sub Sub CallingProcedure() 'Declaring variables Dim FolderPath, FileName As String 'Getting values from textbox on sheet1 FolderPath = Sheet1.TextBox1.Value FileName = Sheet1.TextBox2.Value 'Calling PrintAllWorkbooksInFolder procedure PrintAllWorkbooksInFolder FolderPath, FileName End Sub
このブログが気に入ったら、FacebookやFacebookで友達と共有してください。
皆様からのご意見をお待ちしております。私たちの仕事を改善し、あなたのために改善する方法をお知らせください。 [email protected]までご連絡ください