エクセルVBAで、同じフォルダ内にある複数のcsvファイルの文字を
別のエクセルファイルに縦に並べて転記したいです。
非常によく似た質問があったのですが(以下URL)、こちらは2つめ以降に読み取られたcsvファイルの1行目を削除(か、そもそも読み取っていないのか、、)するような指示になっています。
http://oshiete.goo.ne.jp/qa/4884584.html
以下マクロを作動させた際にcsvの1行目の情報もすべて記載させるようにするためには、
どこをどのように修正すればよいか教えて頂きたいです。
マクロの知識は無いに等しいので、コードをそのまま記載頂きたいです。
申し訳ありませんが何卒よろしくお願いいたします。
-----------------------------------------------------------------
Private Sub try()
Dim ws As Worksheet
Dim fd As String
Dim fn As String
Dim ret As String
Dim i As Long
Dim n As Long
Dim x As Long
Dim s As Long
fd = ThisWorkbook.Path & "\"
'fd = FDSELECT 'フォルダ選択の場合
If Len(fd) = 0& Then Exit Sub
Application.ScreenUpdating = False
'ActiveWorkbookにシートを追加して処理
Set ws = Sheets.Add
On Error GoTo errHndler
fn = Dir(fd & "*.csv")
x = 1
s = 1
Do Until Len(fn) = 0&
i = i + 1
'データCountにより次のセット先変更
n = n + x
'外部データ取り込み
x = CSVQRY(ws, fd & fn, ws.Cells(n, 2), s)
If x < 0 Then
Err.Raise Number:=1000, Description:="CSV読み込みに失敗"
ElseIf (n + x) >= Rows.Count Then
'行数overしてもエラーかからないため取り込み直し
ws.Rows(n).Resize(x).Delete
Set ws = Sheets.Add
n = 1
x = CSVQRY(ws, fd & fn, ws.Cells(n, 2), 1&)
End If
'ファイル名をA列にセット
ws.Cells(n, 1).Resize(x).Value = fn
s = 2
fn = Dir()
Loop
If i > 0 Then
ret = i & "files.done"
Else
ret = "no file"
End If
errHndler:
If Err.Number <> 0 Then
ret = Err.Number & vbTab & Err.Description
Debug.Print ret
End If
Application.ScreenUpdating = True
MsgBox ret
Set ws = Nothing
End Sub
'---------------------------------------------------------------------
Private Function CSVQRY(ByRef ws As Worksheet, _
ByRef fs As String, _
ByRef rs As Range, _
ByVal sr As Long) As Long
Dim cnt As Long
On Error GoTo errChk
With ws.QueryTables.Add(Connection:="TEXT;" & fs, _
Destination:=rs)
.AdjustColumnWidth = False
.TextFilePlatform = xlWindows
.TextFileStartRow = sr
.TextFileCommaDelimiter = True
.Refresh False
cnt = .ResultRange.Rows.Count
.Parent.Names(.Name).Delete
.Delete
End With
CSVQRY = cnt
Exit Function
errChk:
CSVQRY = -1
End Function
'---------------------------------------------------------------------
Private Function FDSELECT() As String 'フォルダ選択Function
Dim obj As Object
Dim ret As String
Set obj = CreateObject("Shell.Application") _
.BrowseForFolder(0, "SelectFolder", 0)
If obj Is Nothing Then Exit Function
On Error Resume Next
ret = obj.self.Path & "\"
If Err.Number <> 0 Then
ret = obj.Items.Item.Path & "\"
Err.Clear
End If
On Error GoTo 0
Set obj = Nothing
FDSELECT = ret
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの指数を無効にしたい
-
VBAでCSVの1行目だけを書き換え...
-
datファイル→csvファイル→datフ...
-
エクセル マクロ で助け下さい...
-
excelインポート時の「実行時エ...
-
ExcelでCSVファイル読み込み時...
-
エクセルのcsvで、12e3を入れる...
-
EXCELLの動きが遅い
-
大量のCSVデータを1つのエ...
-
エクセルでcsvデータを自動読み...
-
Outlook2003からOutlook2007へ...
-
複数のCSVファイルを横に並べて...
-
CSVデータから重複したデータを...
-
「ほかのアプリケーションを無...
-
CSVファイルの結合(重複データ...
-
エクセルでツールバーに「縮小...
-
昨日まで動いていたエクセルの...
-
ファイル名を今日の日付、時刻...
-
複数のデータ系列の線の太さを...
-
excelファイルに使われているVB...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの指数を無効にしたい
-
複数のCSVファイルを横に並べて...
-
excelインポート時の「実行時エ...
-
大量のCSVデータを1つのエ...
-
VBAでCSVの1行目だけを書き換え...
-
複数のcsvファイルを1つのEXCEL...
-
Excel VBAを使った複数のCSVフ...
-
CSVファイルの結合(重複データ...
-
EXCELLの動きが遅い
-
「ほかのアプリケーションを無...
-
datファイル→csvファイル→datフ...
-
EXCELにcsv形式の外部データを...
-
二つのCSVファイルを照らし合わ...
-
EXCELで外部データの取り込みが...
-
【VBA初心者】同じフォルダ内の...
-
【エクセル VBA】CSVファイルの...
-
Accessにエクセルからデータを...
-
VBAで一定期間の名簿を検索、抽...
-
同じ形のCSVファイルを複数同時...
-
複数個のascファイルを1つ...
おすすめ情報