📘 Excel逆引き事典

【VBA】特定のフォルダ内の全ファイルを確認メッセージ無しで転記する方法

日々の業務で大量のファイルから情報を抽出し、一元管理したいというニーズは多いです。しかし、一つ一つ手作業で行うのは時間と労力がかかります。この記事では、特定フォルダ内の全てのExcelファイルを自動的に転記するVBAマクロを作成します。確認メッセージが出ることなくスムーズに処理が進みます。

サンプルコード

VBA
Option Explicit
Sub CopyFilesWithoutConfirmation()
    Dim fso As Object, folder As Object, file As Object
    Dim wb As Workbook
    Dim targetFolder As String
    
    ' 目標フォルダのパスを指定
    targetFolder = "C:\Path\To\TargetFolder"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(targetFolder)
    Application.ScreenUpdating = False
    
    ' フォルダ内の全てのExcelファイルを処理する
    For Each file In folder.Files
        If LCase(fso.GetExtensionName(file.Name)) = "xls" Or LCase(fso.GetExtensionName(file.Name)) = "xlsx" Then
            Set wb = Workbooks.Open(file.Path, ReadOnly:=True)
            ' ここにファイルの内容を転記するコードを追加します(例:アクティブシート全体をコピー)
            ActiveSheet.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            wb.Close SaveChanges:=False
        End If
    Next file
    
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。また、ファイル形式(.xls, .xlsx)が適切であることを確認してください。