[[20200220153500]] 『一つのフォルダに次々と追加される新規ファイルの』(11号) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一つのフォルダに次々と追加される新規ファイルの中の情報を、別のファイルのセルに取得する方法』(11号)

当方メーカーですが新規受注があるとひとつのフォルダAに1受注1ファイルが作成されていきます。ファイル名は「58548×××」のような数字と日本語の混ざったものです。 

作成したいのは、新規ファイルなのですが、それは、フォルダA内に次々と新規作成されるファイルの中のセルA1に入っている「個体番号」とセルA2に入っている「サイズ番号」を自動で取得できるファイルです。

どのようにすればよろしいか知恵をおかしいただけますでしょうか。
何卒よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


フォルダA内のファイル名を全部?取得し、各ファイルの取得したいセルとリンクする数式を書き込むようにすればいいのではないでしょうか?
(回答ではないです) 2020/02/20(木) 15:49

始点となるフォルダ以下を、サブフォルダまで全て調べて、Excelブックなら片っ端から開いて、セルの値を得れば良いでしょう。 似たようなコードはここで何度も書いてますから、"DIR /A:-D/B/S" 辺りをキーワードにして検索してみてください。

それより、フォルダ内には受注ファイル以外のブックは存在しないのでしょうか? もし違うブックも混じっているなら、ファイル名やシート名に、一定の決まりはありますか?

あと、必要な情報は2セル分との事ですが、では1つのブックで2列だけ抜き出して良いのですか? どのブックから開いたとか、ブックの最終更新日時とか、原本に繋がる情報は要らないのでしょうか。 私だったら、更新日時が変わっていたり、追加されたファイルがあれば、太字強調とか考えますよ。
(???) 2020/02/20(木) 15:51


フォルダ内には受注ファイル以外はないです。

どのブックから開いたかがわかればうれしいです。

ブックを開かずにそのブックの中のデータの一部を取得することは可能なのでしょうか。
(11号) 2020/02/20(木) 16:03


Sub main()
    Dim FSO As Object, f As Variant, wb As Workbook, asht As Worksheet, ctr As Long, foln As String
    Set asht = ActiveSheet
    asht.Range("A1:C1").Value = Array("個体番号", "サイズ番号", "ファイル名")
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "フォルダAを選択してください"
        If .Show = True Then foln = .SelectedItems(1)
    End With
    Set FSO = CreateObject("Scripting.FileSystemObject")
    For Each f In FSO.GetFolder(foln).Files
        If asht.Range("C:C").Find(f.Name, , , xlWhole) Is Nothing Then
    Set wb = Workbooks.Open(Filename:=f, ReadOnly:=True)
    asht.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(, 3).Value = Array(wb.Sheets(1).Range("A1"), wb.Sheets(1).Range("A2"), f.Name)
    ctr = ctr + 1
    wb.Close False
    End If
    Next f
    If ctr > 0 Then
        MsgBox "今回の処理で新たに" & ctr & "件追記しました。"
    Else
        MsgBox "今回の処理で追加ありません"
    End If
End Sub
(mm) 2020/02/20(木) 16:06

ExecuteExcel4Macroという、古いExcelとの互換で残っている命令があるので、調べてみてください。 拾うデータが少ない場合には使えます。

しかしながら、ブックとして開かないだけであり、Excel自体は裏でファイルとして開いているわけで、普通に開いて取り出した方が判りやすいと思いますよ?
(???) 2020/02/20(木) 16:15


mmさん、???さん、ありがとうございます。

mmさんのVBAを実行したところ、何ファイルもエクセルが開いているような挙動になったのですがこれは毎回起きるのでしょうか?
(11号) 2020/02/20(木) 17:14


 >これは毎回起きるのでしょうか?

 毎回、というのがどういう意味か分かりませんが、
 何回か起動してみたら毎回起きるかどうか判断で
 きるとともいます。

 逆に、毎回おきないのであれば、不具合があると
 いうことになります。
(OK) 2020/02/20(木) 18:42

↑の私のレスは勘違いでした。
 スルー願います。
(OK) 2020/02/20(木) 19:04

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.