- ベストアンサー
ファイルを開いた時、CSVデータを自動で取得したい
- 毎日送られてくるCSVファイルがあります。今まで手作業で「更新ファイル.exl」を作成していたのですが、開いた時に自動更新したいと思い、あちらこちらのサンプルから引用したコードを試みましたが、途中で行き詰ってしまいました。
- やりたことは、(1)「更新ファイル」A列に計算式を入れたい、(2)CSVファイルのA,B列は除き、C列以降を「更新ファイル」のB列から貼り付けたいということです。
- 現状では、CSVファイル、更新ファイル共にタイトル行がない状態です。CSVデータそのままの形式で、「更新ファイル.exl」に出力されてしまうので、指定した形式で出力したいと考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 マクロを直してみました。お試しください。 Sub Workbook_Open() Dim Workbooks As Variant Dim Sheets As Variant Dim Filename As Variant Dim wR As Long ' ThisWorkbook.Sheets("Sheet1").Activate Cells.ClearContents Filename = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv") With ActiveSheet.QueryTables.Add _ (Connection:="TEXT;" & Filename, Destination:=Range("B1")) '←B列に貼り付け .TextFileCommaDelimiter = True .Refresh BackgroundQuery:=False End With With ActiveSheet .Columns("B:C").Delete Shift:=xlToLeft '←CSVファイルのA,B列を削除 wR = .Range("B" & Rows.Count).End(xlUp).Row .Range("A1") = "=B1&C1&D1" 'A列に式を設定 .Range("A1").AutoFill Destination:=Range("A1:A" & wR), Type:=xlFillDefault End With End Sub
お礼
教えて頂いたコードで、希望通りのことができました! 本当にありがとうございます!!