• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルを開いた時、CSVデータを自動で取得したい)

ファイルを開いた時、CSVデータを自動で取得したい

このQ&Aのポイント
  • 毎日送られてくるCSVファイルがあります。今まで手作業で「更新ファイル.exl」を作成していたのですが、開いた時に自動更新したいと思い、あちらこちらのサンプルから引用したコードを試みましたが、途中で行き詰ってしまいました。
  • やりたことは、(1)「更新ファイル」A列に計算式を入れたい、(2)CSVファイルのA,B列は除き、C列以降を「更新ファイル」のB列から貼り付けたいということです。
  • 現状では、CSVファイル、更新ファイル共にタイトル行がない状態です。CSVデータそのままの形式で、「更新ファイル.exl」に出力されてしまうので、指定した形式で出力したいと考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.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

nekonote19
質問者

お礼

 教えて頂いたコードで、希望通りのことができました!  本当にありがとうございます!!

関連するQ&A