この記事では、フォルダー内のすべてのExcelファイルを印刷するマクロを作成します。

印刷したいフォルダ内にいくつかのExcelファイルがあります。それらはすべて同じファイル拡張子「.xlsx」を持っています

ArrowFilesInFolder

ArrowMain

コードの説明

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]までご連絡ください