Excel VBA質問箱 IV

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

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


18252 / 76738 ←次へ | 前へ→

【63929】Re:マクロを早く快適に動かしたいです
発言  かみちゃん E-MAIL  - 09/12/31(木) 18:41 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>データはかみちゃんさんのご想像通りです。

  時間   商品名   商品数
というタイトル行は、なく、

>と店舗毎の1ヶ月の商品の総数を統合した

ものをCSVファイルではなく、ワークシート上に出力するのでよければ、
Hirofumiさんのコードをお借りすると以下のような感じで集計できると思います。

マクロを記述するブックが保存されているフォルダに、
「月間データ統合」というフォルダがあり、その中に
20091201フォルダ、20091202フォルダというフォルダがあるものとします。

Option Explicit
Option Compare Text

Sub Sample()

  Dim dataFolder As String
  Dim fileName As String
  Dim i As Long
  Dim vntFileNames() As Variant
  Dim vntField As Variant
  Dim vntKeys As Variant
  Dim dicIndex As Object
  Dim strPrompt As String
   
  Application.ScreenUpdating = False
 
  'データフォルダ
  dataFolder = ThisWorkbook.Path & "\月間データ統合"
  '※csvファイル名取得
  If Not FileList(dataFolder, vntFileNames, Sheets("Sheet1")) Then
    strPrompt = "ファイルが有りません"
    GoTo Wayout
  End If
  
  '※bookへcsvファイルを集計
 
  'Dictionaryオブジェクトを取得
  Set dicIndex = CreateObject("Scripting.Dictionary")
  For i = 1 To UBound(vntFileNames, 1) - 1
    'csvファイルのファイル名取得
    fileName = dataFolder & "\" & vntFileNames(i, 2) & "\" & vntFileNames(i, 1) & ".csv"
    'データ取得
    GetData fileName, dicIndex
  Next
      
  With dicIndex
    'Dictionaryの全てのKeyを出力
    vntKeys = dicIndex.Keys
    '結果用配列を確保
    ReDim vntField(1 To UBound(vntKeys) + 1, 1 To 3)
    '結果を配列に出力
    For i = 0 To UBound(vntKeys)
      vntField(i + 1, 1) = vntKeys(i)
      vntField(i + 1, 2) = vntKeys(i)
      vntField(i + 1, 3) = .Item(vntKeys(i))
    Next i
    'Dictionaryをクリア
    .RemoveAll
  End With
  With Sheets("Sheet1")
   .Cells.Clear
   .Range("A1").Resize(UBound(vntField), 3).Value = vntField
  End With
 
  strPrompt = "処理が完了しました"
 
Wayout:
 
  Set dicIndex = Nothing
 
  Application.ScreenUpdating = True
 
  MsgBox strPrompt, vbInformation

End Sub

Private Sub GetData(strFile As String, dicIndex As Object)
 '〜省略〜
End Sub

Private Function FileList(strPath As String, vntFileNames() As Variant, wksWork As Worksheet) As Boolean
 '〜省略〜
End Function

Private Function SplitCsv(ByVal strLine As String, _
 '〜省略〜
End Function

ワークシートを経由せずに、CSVファイルに直接出力することもできますが、
どのフォルダにどのようなファイル名で保存すればいいのかがわかりません。
0 hits

【63908】マクロを早く快適に動かしたいです つよぽん 09/12/31(木) 6:33 質問
【63910】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 10:40 発言
【63914】Re:マクロを早く快適に動かしたいです kanabun 09/12/31(木) 14:09 発言
【63916】Re:マクロを早く快適に動かしたいです つよぽん 09/12/31(木) 15:13 発言
【63917】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 15:19 発言
【63918】Re:マクロを早く快適に動かしたいです Hirofumi 09/12/31(木) 15:31 回答
【63919】Re:マクロを早く快適に動かしたいです Hirofumi 09/12/31(木) 15:36 回答
【63921】Re:マクロを早く快適に動かしたいです Hirofumi 09/12/31(木) 17:12 回答
【63927】Re:マクロを早く快適に動かしたいです Hirofumi 09/12/31(木) 18:03 回答
【63928】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 18:10 発言
【63932】Re:マクロを早く快適に動かしたいです Hirofumi 09/12/31(木) 19:07 発言
【63933】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 19:40 発言
【63935】Re:マクロを早く快適に動かしたいです Hirofumi 09/12/31(木) 20:33 発言
【63936】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 21:01 発言
【63939】Re:マクロを早く快適に動かしたいです つよぽん 10/1/1(金) 18:32 質問
【63940】Re:マクロを早く快適に動かしたいです かみちゃん 10/1/1(金) 18:39 発言
【63942】Re:マクロを早く快適に動かしたいです つよぽん 10/1/1(金) 19:16 お礼
【63948】Re:マクロを早く快適に動かしたいです kanabun 10/1/2(土) 22:23 発言
【63949】Re:マクロを早く快適に動かしたいです kanabun 10/1/2(土) 23:21 発言
【63950】Re:マクロを早く快適に動かしたいです kanabun 10/1/2(土) 23:29 発言
【63920】Re:マクロを早く快適に動かしたいです kanabun 09/12/31(木) 17:08 発言
【63924】Re:マクロを早く快適に動かしたいです つよぽん 09/12/31(木) 17:48 発言
【63925】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 17:53 発言
【63929】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 18:41 発言
【63931】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 18:50 発言
【63937】Re:マクロを早く快適に動かしたいです かみちゃん 09/12/31(木) 21:04 発言
【63934】Re:マクロを早く快適に動かしたいです kanabun 09/12/31(木) 20:14 発言
【63938】Re:マクロを早く快適に動かしたいです kanabun 09/12/31(木) 22:54 発言
【63941】Re:マクロを早く快適に動かしたいです つよぽん 10/1/1(金) 18:57 発言
【63943】Re:マクロを早く快適に動かしたいです かみちゃん 10/1/1(金) 19:41 発言
【63930】Re:マクロを早く快適に動かしたいです よろずや 09/12/31(木) 18:44 発言
【63944】Re:マクロを早く快適に動かしたいです Yuki 10/1/2(土) 10:46 発言
【63945】Re:マクロを早く快適に動かしたいです かみちゃん 10/1/2(土) 11:11 発言

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