• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファルダに有るすべての拡張子TXT.ファイルをExcel1個にまとめる)

ファルダに有るすべての拡張子TXT.ファイルをExcel1個にまとめる

このQ&Aのポイント
  • VBAでフォルダを指定し、フォルダ内の拡張子がTXTのファイルをCSV形式で新しいExcelにまとめるマクロの作り方を教えてください。
  • ExcelのVBAを使用して、指定されたフォルダ内にある拡張子がTXTのファイルを開き、内容をCSV形式で新しいExcelにまとめる手順について教えてください。
  • VBAを使って、指定されたフォルダ内にある拡張子がTXTのファイルを開き、CSV形式のデータとして新しいExcelにまとめる方法を教えてください。

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

  • ベストアンサー
  • nekotaru
  • ベストアンサー率50% (22/44)
回答No.4

こんにちわです。 この行を wb.ActiveSheet.Copy before:=wb_New.Sheets(1) 以下の行に差し替えてくださいー wb.ActiveSheet.Copy after:=wb_New.Sheets(wb_New.Worksheets.Count) これでうまくいくと思いますー

hibohibo
質問者

お礼

nekotaruさん、3回も回答ありがとう御座いました。 完璧な物が出来ました、今回は本当にありがとう御座いました。

その他の回答 (3)

  • nekotaru
  • ベストアンサー率50% (22/44)
回答No.3

こんな感じでいかがでしょう? Sub test() Dim myPName As Variant myPName = Application.GetOpenFilename("データ(*.TXT;*.DAT),*.TXT;*.DAT") If myPName = "False" Then Exit Sub Dim wb_New As Workbook Set wb_New = Workbooks.Add Dim myKAKUCHOSI As String Dim myPATHNAME As String Dim myLName As String Dim wb As Workbook myKAKUCHOSI = Right(myPName, 4) myPATHNAME = CurDir myLName = Dir(myPATHNAME & "\" & "*" & myKAKUCHOSI) Do While myLName <> "" Workbooks.OpenText Filename:=myPATHNAME & "\" & myLName, DataType:=xlDelimited, Tab:=True, Comma:=True, Space:=True Set wb = ActiveWorkbook wb.ActiveSheet.Copy before:=wb_New.Sheets(1) wb.Close savechanges:=False myLName = Dir() Loop ' '不要なシートを削除 ' Dim ws As Worksheet Application.DisplayAlerts = False For Each ws In wb_New.Worksheets If InStr(ws.Name, "Sheet") > 0 Then ws.Delete End If Next Application.DisplayAlerts = True End Sub

hibohibo
質問者

補足

nekotaruさんありがとう御座いました。 早速実行しました、ほぼイメージどうりの物が出来ました。 もし良ければもう一つ教えて欲しいのですが、シート名の並び方が現在は左から大きい順に並んでいますが逆の左-小、右-大のようにしたいのですが可能でしょうか。 何度も質問して済みませんが、時間がある時で結構ですので宜しくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>新しいExcelを1個開いてまとめるマクロを何方か教えてください フォルダのファイル1つーー>Sheet1つ づつにするのか、 全てのファイルのデータを1つのSheetの下の方へ継ぎ足してゆくのか書かないと、質問の趣旨が不明確です。

hibohibo
質問者

補足

マクロ実行時に指定したフォルダに10個TXTファイルが有れば、最後にはマクロが書いてあるExcelファイルとマクロによって開かれたExcelファイル(シートは10個)になっている状態が希望です。

  • nekotaru
  • ベストアンサー率50% (22/44)
回答No.1

こんな感じでいかがでしょう? Sub ffff() Dim myPName As Variant Dim myKAKUCHOSI As String Dim myPATHNAME As String Dim myLName As String Dim wb As Workbook myPName = Application.GetOpenFilename("データ(*.TXT;*.DAT),*.TXT;*.DAT") If myPName = "False" Then Exit Sub myKAKUCHOSI = Right(myPName, 4) myPATHNAME = CurDir myLName = Dir(myPATHNAME & "\" & "*" & myKAKUCHOSI) Do While myLName <> "" Workbooks.OpenText Filename:=myPATHNAME & "\" & myLName, DataType:=xlDelimited, Tab:=True, Comma:=True, Space:=True Set wb = ActiveWorkbook wb.ActiveSheet.Copy before:=ThisWorkbook.Sheets(1) wb.Close savechanges:=False myLName = Dir() Loop End Sub

hibohibo
質問者

お礼

ご回答のお礼が遅れまして、大変失礼致しました。 今、Excelが使えるPCが無いので月曜日に試したいと思います。 今回は回答ありがとうございました。

hibohibo
質問者

補足

nekotaruさんありがとう御座いました。 早速実行しましたが、現在だとマクロが書いてあるファイルにシートが足されてしまいますが出来れば、マクロ実行時に新しいExcelファイルが開き、マクロで指定したフォルダに10個TXTファイルが有れば、最後にはマクロが書いてあるExcelファイルとマクロによって開かれたExcelファイル(シートは10個)になっている状態が希望です。 宜しくお願いします。

関連するQ&A