[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキスト読み込み→フィルタ抽出』(のりたま)
親フォルダ(月ごとにフォルダ名が変わります)
↓
数個ある子フォルダのそれぞれに、同名のファイルが入っています。テキストファイルのようなものです。
毎回、子フォルダごとにそのファイルをexcelでテキスト読み込み(固定長フィールド)し、フィルタをかけ、求めるデータを抽出しています。
各フォルダごとに同じ操作を行っており、なかなか手間がかかるもので、
マクロ等で一発!とは言わないまでも、効率よくできないでしょうか?
お知恵を拝借したいです。
よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
1)毎月1回、数個のファイルを処理する
2)月数回、毎回1個のファイルを処理する
(マナ) 2017/03/20(月) 13:08
コメントありがとうございます。
わかりづらく申し訳ありません。
「1)毎月1回、数個のファイルを処理する」です。
(のりたま) 2017/03/21(火) 13:27
例えば、
>『テキスト読み込み→フィルタ抽出』
この操作を複数ファイルについて実行した後が不明です。
抽出結果をどうしているのですか。
1)個別のファイルに保存
2)1つのブックにシートを分けて保存
3)1つのシートにまとめて保存
自動化したい全操作を教えてください。
わたしは、昼間は書込みできませんので、
解決まで時間がかかるかもしれません。
それでは困るというのであれば、いってください。
他の回答者が、コードを書いてくださると思います。
(マナ) 2017/03/21(火) 20:34
言葉足らずで申し訳ありません。
現在行っている作業を書き出してみます。
・ファイルをexcelでテキストファイル読み込み
・オートフィルタ
・ある列を「規定の値以上」で抽出
・抽出結果のうち、必要な情報があるセルのみコピー
・別のexcelにペースト
(このexcelは共通です。1つのシートにまとめて保存、にあたると思います)
これを子フォルダごとに繰り返します。
お気遣いありがとうございます。
特に急ぐものではありません。
(のりたま) 2017/03/22(水) 17:33
まずは、
テキストファイル読み込み
の操作を記録してみてください。
そのあと、
オートフィルターで抽出
の操作についても記録してみてください。
どのように記録されたか教えてください。
(マナ) 2017/03/22(水) 19:51
お世話になります。
とりあえず、オートフィルタで抽出するところまで記録してみました。
ChDir "(共通のexcelが入っているフォルダ)" Workbooks.Open Filename:="(共通のexcel).xlsx" Sheets("(ペーストしたデータを使うシート)").Select Range("B2:J30").Select Selection.SpecialCells(xlCellTypeConstants, 23).Select Selection.ClearContents Sheets("(ペーストするシート)").Select Range("A3:L13").Select Selection.ClearContents Range("A3").Select With ActiveSheet.QueryTables.Add(Connection:= _ "(テキストファイル)", Destination:=Range("$A$3")) .Name = "DATA." .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlFixedWidth .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1) .TextFileFixedColumnWidths = Array(42, 1, 7, 30, 10, 21, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With ActiveSheet.Range("$A$2:$K$1036").AutoFilter Field:=7, Criteria1:=">=2", _ Operator:=xlAnd End Sub
ちゃんとできているかわかりませんが、よろしくお願いします。
(のりたま) 2017/03/23(木) 22:46
1)親フォルダ選択
2)作業用シート作成
3)子フォルダを調べる
4)テキストファイルが存在するか確認
5)テキストファイルを、作業用シートに読み込み
6)他の子フォルダについても3)〜5)を繰り返す
7)オートフィルターで抽出(あるいは、フィルターオプション?)
8)抽出結果を「共通のexcel」に転記
9)作業用シート削除
(マナ) 2017/03/24(金) 18:22
作業用シートは、もうあるのですね。
ならば、こうですか。
1)親フォルダ選択
2)子フォルダを調べる
3)テキストファイルが存在するか確認
4)テキストファイルを、作業用シートに読み込み
5)他の子フォルダについても2)〜4)を繰り返す
6)オートフィルターで抽出(あるいは、フィルターオプション?)
7)抽出結果を「共通のexcel」に転記
8)作業用シート初期化
(マナ) 2017/03/24(金) 18:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.