- ベストアンサー
excel2007マクロ複数のtxtファイル取り込みについて
- 複数のtxtファイルを1つのシートに取り込むマクロの作成について
- マクロ実行時にエラーが表示される原因と解決方法
- マクロの実行に関する質問への回答をお願いします
- みんなの回答 (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を削除し、テキストデータだけにしておくと良いです。
お礼
大変参考になりました。 教えて頂いた通り入力すると実行することができました。 ありがとうございました。