VBA初心者です。質問があまりに簡単という方もいらっしゃるかも知れませんが、
仕事上非常に困っているので何とぞよろしくお願い致します。
以下のようなマクロを教えてください(>_<)
動作:フォルダ内の複数のテキストファイルをエクセルのシートごとにインポートする。
条件:1.テキストファイルが保存されているフォルダは一つ
2.テキストファイルのファイル名に規則性はなし
3.保存されているテキストファイルのファイル数は不特定
動作例:フォルダ内に、10コのテキストファイルが保存されている場合
→それぞれのテキストファイルがエクセルの各シート(この場合、10枚のシート)に
インポートされる。
以上、何とぞご教授のほどお願い致します!
No.1
- 回答日時:
簡単じゃなくて、かなり高度なほうです。
説明も大変なので、
1、フォルダ内のファイル名の一覧を取得(↓参考 下のほうをみてください)
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
2、テキストファイル読み込み(↓参考 下のほうをみてください)
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
3、シートを追加して書き出す。
を組み合わせればいいかと思いますが。
leavemeさん。ご回答ありがとうございました。
こういったサイトがあることを全然知りませんでした(^_^;)
参考になるサイトを教えて頂きとても助かります<m(__)m>
No.2
- 回答日時:
ファイルの検索はこちら
http://officetanaka.net/excel/vba/file/file07.htm
buf = Dir("D:\*.TXT")
にすればいいでしょう。
インポートはマクロの記録で実際にインポートしてコードを取得して
一部書き換えてください。
たとえば
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\" & buf, _
Destination:=Range("A1"))
.Name = buf
.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 = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
こんな感じになります。
No.3
- 回答日時:
「フォルダ内の複数のテキストファイルを・・・」
フォルダ内ファイルをダイアログ表示し人が選ぶ方法と、
VBAが勝手にフォルダ内ファイルを検知する方法とあります。
「テキストファイル」
カンマ区切りにでもしないと、1セルにテキストファイル1行そのままセットされますが
それでも良いですか。
仕掛けは機能的、段階を踏んで切り分けて考えてください。
・ファイルを選ぶ機能→【ファイル選択ダイアログ表示】
・1ファイル分読み込んでインポートする機能→【テキストファイルを読み込むVBA】
・2ファイル目以降は次のシートとする機能→【シート追加させるEXCELマクロ】
・一連の処理の繰り返し
・文字制御(,有無、”有無など)
・シート数制限、終了判定などの制御
EXCELでお仕事
http://www.asahi-net.or.jp/~ef2o-inue/menu/menu0 …
新しくマクロを作って、モジュール画面を見るとそれがコーディングされています。
マクロでできる部分はマクロを作ってモジュール流用しアレンジさせましょう。
layyさん。ご回答ありがとうございました。
貴重なアドバイスを頂き、処理工程を整理することがでました(^.^)
VBA・・深いですね・・(^_^;)
No.4ベストアンサー
- 回答日時:
ANo2です
全体的な一例です。
インポートのところはマクロの記録で自分のやりたい形式でコードを取得してください。
Sub test()
Dim buf As String, i As Long
buf = Dir("D:\*.TXT")
Do While buf <> ""
i = i + 1
If ActiveWorkbook.Worksheets.Count < i Then
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
End If
Worksheets(i).Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\" & buf, _
Destination:=ActiveSheet.Range("A1"))
.Name = buf
.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 = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
buf = Dir()
Loop
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/14 12:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【AccessVBA】ダイアログで複数...
-
ダブルクォーテーション囲いカ...
-
【Access】クエリで抽出...
-
テキストファイルをエクセルで...
-
アクセスで小数点以下1桁まで...
-
多数のeml形式ファイルを1つの...
-
CSVファイルでの数字表記のエラー
-
SQLSever 一括インポートについて
-
Excelでhtml形式のテキストを表...
-
Excelのデータ(数字)をテキス...
-
ISOファイルとMDSファイル
-
差し込み印刷の元データファイ...
-
ACCESSでデータ読み取り専用を...
-
EXCEL VBA 指定したファイルが...
-
エクセルで誰が今開いているか...
-
エクセルマクロで不特定なファ...
-
エクセルでのアクセス履歴をと...
-
EXCELが勝手に「読み取り専用」...
-
イーファンビューでwebpファイ...
-
VBでファイルが開かれているか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Access】クエリで抽出...
-
Excelのデータ(数字)をテキス...
-
Wordの文章をExcelに内容ごとに...
-
SQLSever 一括インポートについて
-
複数eml形式のBecky!への一括イ...
-
アクセス(ACCESS) インポート...
-
Excelでhtml形式のテキストを表...
-
ダブルクォーテーション囲いカ...
-
ACCESS CSV形式でエクスポート...
-
多数のeml形式ファイルを1つの...
-
アクセスで小数点以下1桁まで...
-
エクセル2000で65536行を超える...
-
【AccessVBA】ダイアログで複数...
-
mdbをテキストに変換するツール...
-
notepad++ で作成した文書を cs...
-
複数のエクセルファイルをアク...
-
Accessのテーブルにデー...
-
アクセス2007でのインポートエ...
-
VBA 複数のCSVファイルを一度...
-
CSVファイルを固定長のテキスト...
おすすめ情報