重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

解析ファイル(マクロを組むファイル)のあるフォルダ内にデータファイルが複数あります。
そのなかで.csvデータファイルのみを抽出し、そのファイルのデータを解析ファイルのシート1に12行目から並べていきたいです。
.csvデータファイルには各々シート1のB2:B100にデータが入っています。

つまりは 解析ファイルsheet1に
11行目まで 空欄
12行目 .csvデータ1のB2:B100
13行目 .csvデータ2のB2:B100
14行目 .csvデータ3のB2:B100



のように並べていきたいです。

以下のようにマクロをくんだのですが、ファイルを開く部分でエラーになってしまいます。

Public Sub データを抽出()
Dim i As Long
Dim buf As String

'ワークシート変数の宣言
Dim dstSheet As Worksheet


'現在のブック内のワークシートの1番目を代入
Set dstSheet = ThisWorkbook.Sheets(1)


'フォルダ内すべてのExcelファイル名を取得
buf = Dir(ThisWorkbook.Path & "\*.csv")
i = 11

'ループ処理
Do While buf <> ""
i = i + 1

'ワークブック変数の宣言
Dim srcBook As Workbook
'ワークブックの代入
Set srcBook = Workbooks.Open(buf)  ←ここでエラーになります
'ワークシート変数の宣言
Dim srcSheet As Worksheet
'ワークシートの代入
Set srcSheet = srcBook.Sheets(1)

'データの移行
dstSheet.Cells(i, 2).Value = srcSheet.Cells(2, 1).Resize(1, 100)

'ファイルを閉じる
srcBook.Close False

buf = Dir()
Loop

End Sub


どこをなおせばいいか、どなたかご教授いただければ幸いです。

質問者からの補足コメント

  • エラー内容は「実行時エラー'1004': 申し訳ございません。○○○○が見つかりません。名前が変更されたか、移動や削除が行われた可能性があります。」というものです。○○○○というファイルはきちんとフォルダに入っているのですが、このようなエラーがでてしまいます。

      補足日時:2020/12/15 13:44

A 回答 (2件)

こんにちは



変数bufの内容はファイル名だけなので、フルパスにして
 ThisWorkbook.Path & "\" & buf
で、Openすれば、多分開けるのではないかと思います。
    • good
    • 0
この回答へのお礼

ご教授いただいたとおりにいれたところ、ファイルを開くことができました。ありがとうございました。
別の問題が発生したので、そちらをまた質問しようと思います。

お礼日時:2020/12/15 14:01

他人が預けたクラウドファイル


管理者だからって
お金儲けに使って
上からチクチクいじめていいのは何故なのかわからないです
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!