• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel2007マクロ複数のtxtファイル取り込みについて)

excel2007マクロ複数のtxtファイル取り込みについて

このQ&Aのポイント
  • 複数のtxtファイルを1つのシートに取り込むマクロの作成について
  • マクロ実行時にエラーが表示される原因と解決方法
  • マクロの実行に関する質問への回答をお願いします

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

Dim i As Integer For i = 1 To 10   With Sheets("Sheet" & i).QueryTables.Add _     (Connection:="TEXT;C:\Documents and Settings\owner\My Documents\test3\BD3.ds0_" & i & ".txt", _      Destination:=Sheets("Sheet" & i).Range("$A$1"))     .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 = True     .TextFileTabDelimiter = True     .TextFileSemicolonDelimiter = False     .TextFileCommaDelimiter = False     .TextFileSpaceDelimiter = True     .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)     .TextFileTrailingMinusNumbers = True     .Refresh BackgroundQuery:=False     '.Delete   End With Next i シート名やファイル名は文字列です。 そこに変数を組み入れる時は "文字列" & i & "文字列" としなければいけません。 >"TEXT;C:\Documents and Settings\owner\My Documents\test3\BD3.ds0_i.txt" これでは単に『BD3.ds0_i.txt』という名前のtxtファイルを指定している事になります。 "TEXT;C:\Documents and Settings\owner\My Documents\test3\BD3.ds0_" & i & ".txt" >Sheets("Sheet(i+1)") ここも。 シート名がSheets("Sheet(2)")などの場合は Sheets("Sheet(" & i + 1 & ")") Sheets("Sheet1")やSheets("Sheet2")なら Sheets("Sheet" & i)..というように記述します。 また、シートはSelectしなくても上記コードのように指定すれば良いです。 それに >.Name = "BD3.ds0_i" ここは自動指定なので削って良いです。 また同じファイルを同じシートに何度も更新する必要がなければ '.Delete のコメントを活かしてQueryTableを削除し、テキストデータだけにしておくと良いです。

moozooo
質問者

お礼

大変参考になりました。 教えて頂いた通り入力すると実行することができました。 ありがとうございました。