プログラミング

VBAでCSVファイルをインポートしてテーブルにする

ExcelのVBAスクリプトを使用しCSVデータ・ファイルをインポートしてテーブルに出力する作業を自動化します。

CSVファイルをインポートをvbaで自動化する

ファイルを開きテーブルを作成し出力するVBAスクリプトは以下になります。(以下一部引用)

以下のコードの “C:\pg\node_tmp\out.csv” を任意のファイル名、ファイルパスに変更し、
“Sheet1″を指定のシート名に変更します。


Sub openfile()

    Set ws = ActiveWorkbook.Sheets("Sheet1")
    With ws.QueryTables.Add(Connection:="TEXT;" & "C:\pg\node\_tmp\out.csv", Destination:=ws.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .Refresh
    End With

    On Error GoTo nothingtodelete
        Sheets("Data").QueryTables(1).SaveData = False
        Sheets("Data").QueryTables.Item(1).Delete
nothingtodelete:

End Sub

以下のプログラムはExcelで以下VBAの紐付けられたファイルを開いた場合にスタートアップで自動的に以下プログラムを実行し、csvファイルを読み込むVBAスクリプトの例です。
以下のVBAプログラムはプロジェクト下のThisWorkbookに保存します。


Sub openfile()

    Set ws = ActiveWorkbook.Sheets("Sheet1")
    With ws.QueryTables.Add(Connection:="TEXT;" & "C:\pg\node\_tmp\out.csv", Destination:=ws.Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileCommaDelimiter = True
        .Refresh
    End With

    On Error GoTo nothingtodelete
        Sheets("Data").QueryTables(1).SaveData = False
        Sheets("Data").QueryTables.Item(1).Delete
nothingtodelete:

End Sub

Private Sub Workbook_Open()

    Call openfile
    Call colorize

    Dim dummy As Integer
    dummy = 0
End Sub

なお、この記事におけるVBAプログラムの一部または全ては以下より引用しています。

vba – Is there a way to import data from .csv to active excel sheet? – Stack Overflow
User hatchnet – Stack Overflow

参考:

vba – Is there a way to import data from .csv to active excel sheet? – Stack Overflow

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です