April 18, 2014

選んだcsvファイルをエクセルに取り込むマクロ

VBAを使って、選んだcsvファイルをエクセルに取り込んでくれるマクロです。



Sub readCSVfiles()
    Dim readmeSheet As Worksheet
    Dim i As Long
    Dim fileNameArray As Variant, fileName As Variant

    Application.ScreenUpdating = False '画面更新停止
    Application.Calculation = xlCalculationManual '自動計算停止
                
    Set readmeSheet = ActiveSheet

    fileNameArray = Application.GetOpenFilename( _
                        filefilter:="カンマ区切りテキスト(*.csv),*.csv", _
                        FilterIndex:=1, _
                        Title:="Select CSV files to read...", _
                        MultiSelect:=True)
    
    If Not IsArray(fileNameArray) Then GoTo errorHandler
    
    i = 1
    For Each fileName In fileNameArray
        Application.StatusBar = "読み込み中です...(" & i + 1 & "ファイル)"
        
        Workbooks.Open(fileName). _
            Sheets(1).Move after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

        i = i + 1 'カウント
    Next
    
    readmeSheet.Select
    
    Application.StatusBar = False
    
    Application.Calculation = xlCalculationAutomatic '自動計算停止解除
    Application.ScreenUpdating = True '画面更新停止解除
    
    MsgBox i - 1 & "件のCSVファイルから転記しました。", vbInformation, ""

errorHandler:
    Application.StatusBar = False
    
    Application.Calculation = xlCalculationAutomatic '自動計算停止解除
    Application.ScreenUpdating = True '画面更新停止解除
End Sub

No comments :

Post a Comment