• ベストアンサー

excel内のデータの検索

メーカーに勤務しています。商品の検査データをexcelで入力して保存しており、そのファイル数が数千個になります。今回そのファイル内のある部分のデータ(すべて同じセルに入力してある4桁の数値データ)がある値以下になっているものを抽出しなければなりません。明日の夕方までにやり遂げる必要があるため、1つ1つファイルを開いて確認すると間に合いません。そのため、ファイルを開くことなく自動で検索する方法があればと考えています。非常に困っており、方法を是非とも教えて頂ける様お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

以下のVBAで試してみてください。 検索対象のフォルダ、ブックの検索対象のセル、抽出条件値などを設定してください。 Public Sub ファイル抽出() Dim wBkName As String 'ブック名 Dim wDir As String 'ドライブフォルダ Dim wRow As Long '行カウンタ Dim ChkNum As Integer '抽出条件数値 Dim ChkCell As String '検索するセル Dim ExitFlg As Boolean ' On Error Resume Next wDir = "C:\****\" '←ドライブとフォルダは指定 ChkCell = "B10" '←検索するセルを指定 ChkNum = 1234 '←抽出する条件数値 ' wRow = 0 With ActiveSheet wBkName = Dir(wDir & "*.xls") If wBkName <> "" Then Do While ExitFlg = False If StrConv(Right(wBkName, 4), vbUpperCase) = ".XLS" Then 'ActiveSheetのA列に書き出し .Range("C1").ClearContents .Range("C1") = "='" & wDir & "[" & wBkName & "]'!" & ChkCell If .Range("C1") <= ChkNum Then '抽出条件の数値以下の時、ファイル名を書き出し wRow = wRow + 1 .Cells(wRow, 1) = wBkName End If wBkName = Dir '次のファイルを検索 If wBkName = "" Then ExitFlg = True End If End If Loop End If .Range("C1").ClearContents End With End Sub 'マクロ貼付 ※ 新しいExcelを起動する (1) Alt+F11 (ツール → マクロ → Visual Basic Editor) →「挿入」→「標準モジュール」で表示される画面に貼り付け (2) 実行は、(F5を押す)又は、シート画面に戻って Alt+F8を押してマクロ一覧からマクロ名を選択して実行

noname#91504
質問者

お礼

ありがとうございました。参考になりました。

その他の回答 (2)

noname#97729
noname#97729
回答No.2

過去に良く似た質問を見つけました。 http://okwave.jp/qa211677.html 何かヒントになるかもしれません。 必要な補足があれば書いてもらえると、 賢い人がいいように手直ししてくれるかもです。 私はエクセルを持っていないのでどんな処理になるか 確認してないです。

noname#91504
質問者

お礼

ありがとうございました。

noname#97729
noname#97729
回答No.1

複数のエクセルブックのシートを1つのブックに統合 などを使って、ブック数を減らしてみてはどうですか? 参考に http://search.vector.co.jp/search?query=%83G%83N%83Z%83%8B%81@%93%9D%8D%87

noname#91504
質問者

お礼

ありがとうございました。

関連するQ&A