VBAコードの解説:指定されたフォルダ内のExcelファイルから特定の列を削除

 


VBAコードの解説:指定されたフォルダ内のExcelファイルから特定の列を削除

コード

Sub GからI行削除()
    Dim folderPath As String
    Dim ws As Worksheet
    Dim i As Long
    Dim fileName As String
    Dim externalWorkbook As Workbook

    ' フォルダパスを指定
    folderPath = ThisWorkbook.Path
    
    ' シート名を適切に変更
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' フォルダ内の全てのファイルに対して処理を実行
    fileName = Dir(folderPath & "\*.xls*")
    Do While fileName <> ""
        ' 「削除.xlsm」以外のファイルのみ処理
        If fileName <> "削除.xlsm" Then
            On Error Resume Next
            Set externalWorkbook = Workbooks.Open(folderPath & "\" & fileName)
            If Not externalWorkbook Is Nothing Then
                Dim lastRow As Long
                lastRow = externalWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
                externalWorkbook.Sheets(1).Range("G:I").Delete Shift:=xlToLeft
                externalWorkbook.Close SaveChanges:=True
            End If
            On Error GoTo 0
        End If
        ' 次のファイルを処理
        fileName = Dir
    Loop
End Sub

1. コードの目的

このVBAコードは、指定されたフォルダ内のExcelファイルから特定の列(G列からI列)を削除するものです。

2. コードの概要

  1. フォルダパスを指定します。
  2. シート名を適切に変更します(ここでは「Sheet1」を使用)。
  3. 指定されたフォルダ内の全てのExcelファイルに対して処理を実行します。
  4. 「削除.xlsm」以外のファイルのみ処理します。
  5. 外部のExcelファイルを開き、G列からI列を削除します。
  6. 外部のExcelファイルを保存して閉じます。

3. コードのポイント

  • Dir 関数を使用して、指定されたフォルダ内のファイルを順番に処理しています。
  • On Error Resume NextOn Error GoTo 0 を使用して、エラーが発生した場合に処理を続行するかどうかを制御しています。