• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSVファイルをインポートするマクロについて)

CSVファイルをインポートするマクロの作成方法

このQ&Aのポイント
  • CSVファイルをインポートするマクロを作成する方法を教えてください。
  • CSVファイルの書式やインポートする範囲についても教えて欲しいです。
  • 現在作成中のソースコードも参考にして理解を深めたいです。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

http://okwave.jp/qa/q7577100.html 関連でしょうか? >下記のソースを元に作成しようとしているのですが、わからなくなってしまいました。 難しい事にチャレンジするのも良いとは思いますが 素直に「開いてコピー・ペースト」がオーソドックスな処理です。 基本を押さえておいたほうがよろしいかと。 マクロ記録なども参考にできますし。 Sub Macro1()   Dim ws As Worksheet   Dim r As Range   Dim x   x = Application.GetOpenFilename("CSV Files,*.csv")   If VarType(x) = vbBoolean Then Exit Sub   Set ws = ActiveSheet 'ActiveWorkbook.Worksheets("Sheet1")   Application.ScreenUpdating = False   With Workbooks.Open(x)     With .Sheets(1)       Set r = .UsedRange.SpecialCells(xlCellTypeLastCell)       .Range("A1").Resize(3, r.Column).Copy ws.Range("D3")       If r.Row > 4 Then         .Range("A5", r).Copy ws.Range("A6")       End If     End With     .Close SaveChanges:=False   End With   Application.ScreenUpdating = True   Set ws = Nothing End Sub

wpag-yi
質問者

お礼

回答ありがとうございます。 助かりました。 オーソドックスにコピー・ペーストにしました。

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>1~3行目はエクセルのD3行,D4行,D5行 >4行目はインポートしない >5行目以降はエクセルのA6行,A7行・・・にインポートしたいと思っております。 の仕様で書いてみました、参考に >If VarType(vntFileName) = vbBoolean Then Exit Sub >strFileName = vntFileName   Set FSO = CreateObject("Scripting.FileSystemObject")   With FSO.OpenTextFile(strFileName)     myLines = Split(.ReadAll, vbCrLf)     .Close   End With   For i = 0 To UBound(myLines)     myStr = Replace(myLines(i), """", "")     myStr = Replace(myStr, "'", "")     v = Split(myStr, ",")     n = UBound(v) + 1     If i < 3 Then       Cells(i + 3, "D").Resize(, n).Value = v     ElseIf i > 3 Then       Cells(i + 2, "A").Resize(, n).Value = v     End If   Next   MsgBox "ファイル読み込みが完了しました。" & vbCr & _   "レコード件数=" & n & "件", vbInformation, cnsTitle

関連するQ&A

専門家に質問してみよう