Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7472 / 76736 ←次へ | 前へ→

【74851】Re:複数のCSVファイルを開き、抽出、別シートの空白セルに貼り付けしたい
質問  kanabun  - 13/9/29(日) 20:08 -

引用なし
パスワード
   ▼マスク さん:

>日付データは必ずA列に存在します。日付だけは固定です。
>8/31はひとつのCSVファイルに複数行必ず存在します。
>営業時間内分のログが入っているので、数十行必ず存在します。
了解です。

>コメントを見て、似たような事例を引っ張ってきました。
>やはり空白の列の求め方が分からないのと、貼りつける別シートは新規で作成したいのですが……。

>ファイルを開いて見出し行を挿入する処理が分かりませんでした。

とりあえず、CSVファイルの1行目が項目見出しになっている例で
考えてみました(そうのほうがAutoFilterすぐかけれて、単純なので)

Sub Filter_CSV()
  Dim myDate As Long '抽出したい日付 (シリアル値)
  Dim myCSVs, f
  Dim newBook As Workbook
  Dim rCopy As Range  '抽出転記先先頭セル
  Dim myCol As Long
    
  '●抽出したい日付をこのマクロブックのSheet1!A1セルに書いておく
  myDate = ThisWorkbook.Worksheets(1).Range("A1").Value2
  
  'OpenするCSVファイルを(複数)指定
  myCSVs = Application.GetOpenFilename("CSVファイル,*.csv", _
       MultiSelect:=True)
  If Not IsArray(myCSVs) Then Exit Sub
  
  '抽出転記先のBookを作成
  Set newBook = Workbooks.Add(xlWBATWorksheet) 'シート1枚
  Set rCopy = newBook.Sheets(1).Range("A1")
  
  '指定のCSVファイルを順に開いてフィルタ抽出
  For Each f In myCSVs
    With Workbooks.Open(f).Worksheets(1)
      '表領域に対してA列の日付をAutoFilterで抽出する
      With .Range("A1").CurrentRegion
        .AutoFilter 1, ">=" & myDate, xlAnd, "<=" & myDate
        If .Columns(1).SpecialCells(xlVisible).Count > 1 Then
          myCol = .Columns.Count      '表の列数
          .Copy rCopy            '別シートにCopy
          Set rCopy = rCopy.Offset(, myCol) '次の貼り付け先
        End If
        .AutoFilter
      End With
      .Parent.Close False
    End With
  Next
  newBook.Close True
          
End Sub

これで 実際のCSVファイルの先頭に カンマ区切りで列見出しを書き込んで、
(ファイルは2つほどでよい)名前をつけて保存して、
↑のプロシージャを実行してみてください。
1 hits

【74845】複数のCSVファイルを開き、抽出、別シートの空白セルに貼り付けしたい マスク 13/9/29(日) 10:34 質問
【74847】Re:複数のCSVファイルを開き、抽出、別... kanabun 13/9/29(日) 17:29 発言
【74848】Re:複数のCSVファイルを開き、抽出、別... マスク 13/9/29(日) 18:35 質問
【74849】Re:複数のCSVファイルを開き、抽出、別... kanabun 13/9/29(日) 19:11 発言
【74850】Re:複数のCSVファイルを開き、抽出、別... マスク 13/9/29(日) 19:45 質問
【74851】Re:複数のCSVファイルを開き、抽出、別... kanabun 13/9/29(日) 20:08 質問
【74852】Re:複数のCSVファイルを開き、抽出、別... マスク 13/9/29(日) 21:23 お礼
【74854】Re:複数のCSVファイルを開き、抽出、別... kanabun 13/9/30(月) 10:51 発言
【74855】Re:複数のCSVファイルを開き、抽出、別... マスク 13/10/2(水) 21:55 お礼

7472 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free