Excel大量データのとりまとめについて、お助け下さい。 365日分のファイル(365個)が

Excel | Visual Basic214閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

ThanksImg質問者からのお礼コメント

ご回答ありがとうございます。 お返事が遅れてすみません。 ご提示いただいたVBAで成功しました。 各ファイル、12シート、123KB前後 処理時間は3分ほどでした。 知恵袋にて質問するのが初めてで、拙い質問にも関わらず 本当にありがとうございました。助かりました。 (質問の仕方については他の回答者からもご指摘をいただきました。今後は気を付けます。) ベストアンサーとさせていただきます!

お礼日時:10/29 20:56

その他の回答(4件)

0

指定ホルダー以下のファイル名が日付のモノを リスト化して日付順に並べ替えてみました。 Dim shPath As Worksheet Dim counter As Long Sub メイン() Dim RPath With Application.FileDialog(msoFileDialogFolderPicker) If .Show = False Then Exit Sub RPath = .SelectedItems(1) End With Workbooks.Add Set shPath = ActiveSheet Call ファイルス(RPath) With shPath.UsedRange .Columns.AutoFit .Sort Key1:=.Cells(1, 1), _ Order1:=xlAscending, Header:=xlNo End With End Sub Sub ファイルス(FolPath) Dim FSO As Object, f As Variant, fl, c, temp Set FSO = CreateObject("Scripting.FileSystemObject") On Error Resume Next For Each f In FSO.GetFolder(FolPath).Files c = Split(StrConv(f.Name, vbLowerCase), ".") temp = Replace(c(0), "_", "/") If IsDate(temp) Then With shPath .Range("A" & counter).Value = temp .Range("B" & counter).Value = f.Name .Range("C" & counter).Value = f.Path counter = counter + 1 End With End If Next f For Each fl In FSO.GetFolder(FolPath).SubFolders Call ファイルス(fl.Path) Next On Error GoTo 0 Set FSO = Nothing End Sub

Dim shPath As Worksheet Dim counter As Long これはモジュールレベルの変数なので 標準モジュールの一番上に記述する必要があります。 それと Sub メイン() の後に counter=1 と入れる必要がありました。

0

複雑な関数なら無理かもしれませんが、意外にいけるかも。 試しに、適当な数字をA1~A10に入力したブックを作成し、名前を付けて保存します。 そのブックを開いた状態で、新規作成でブックを開きます。 新規ブックの例えば、A1に『=』と入力し、名前を付けて保存したブックのA1をクリックし、『Enter』で確定します。 すると、名前を付けて保存したA1セルの数字が表示されますよね。(当たり前) 次に、名前を付けて保存したブックを閉じます。 そして、新規ブックのA1セルをコピーし、A2に貼り付けます。 F2を押し、編集モードで『!$A$1』となっている所を『!$A$2』に変更すると、名前を付けて保存したブックのA2の値が出てきます。 この場合、セルの内容は、 =保存先、ファイル名、シート名、セル番地 になっています。 だから、規則的なフォルダ名が付いたブックであれば、そう難しい関数を使わずともブックを開かず参照できるのではないかと考えました。 各セルに、年、月、日を入れ、それらとセル番地をつなぎ合わせる式を書けば、引っ張ってこれる。引っ張ってこれれば、コピーしほかのブックに値の貼り付けで可能かも。参照セルもそんなに多くないようですし…

0

J14:K37のデータは位置でしか判別出来ませんか? 条件の指定で抽出できるのであれば、vba を使うよりパワークエリーを使う方が早くて簡単です。 位置でしか判別できないのであれば vba を使った方が良さそうですね。 vba のコードを提供して欲しいのであれば、フォルダの名称やファイルの名称など、ちゃんと記載しないと提供してもらえないですよ。

0

まずファイル操作が出来るのは1つずつでしかないと言う事は知っておいて下さい 1つのbookを開いて処理して閉じてを繰り返せば時間はかかるでしょう せめて1ヶ月分を1つのbookにすれば、その量は約30分の1になった訳です と、初級者は思います