[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストファイルの外部データ取り込み』(satton)
初めて投稿させていただきます。
VBAは全くの初心者です。
VBAにてテキストファイルの取り込みを行おうと思っています。
Sub Macro3()
Dim Target As String Target = Application.GetOpenFilename("テキストファイル,*.txt") If Target = "False" Then Exit Sub
With ActiveSheet.QueryTables.Add(Connection:="TEXT;Target", Destination:=Range("$A$3")) .Name = "拾い出しデータ" .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 = xlTextQualifierSingleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub
実行するとファイル選択のダイアログが開き、ファイルを選択して「開く」ボタンを押すと、
実行時エラー'1004'が表示され、「外部データ範囲を更新するためのテキストファイルが
見つかりません。」と表示されます。
「.Refresh BackgroundQuery:=False」に問題があるようですが、
原因がよく分かりません。
過去に同じような質問があったかもしれませんが、ご指導頂けると助かります。
勉強不足で申し訳ございませんが、
よろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
With ActiveSheet.QueryTables.Add(Connection:="TEXT;Target", Destination:=Range("$A$3"))
この中の "TEXT;Target" の Target とは何ですか? 変数ですよね。ファイルのフルパスが入った。 変数を " " 内にいれると、それは "Target" という文字列になってしまいます。 ここは "TEXT;" & Target, としてください。
それと、.Name = "拾い出しデータ" これは 拾い出しデータ.txt というファイル決め打ちになります。 実際には何が選ばれるかわかりませんよね。 選ばれたファイル名から拡張子を除いたものを指定する必要があります。
(β) 2015/03/18(水) 21:44
ご指示頂いた"TEXT;" & Target,の修正でうまく機能しました。
ありがとうございます。
.Name = "拾い出しデータ"に関しては特に修正していませんが、
問題なさそうです。また不具合があれば質問させていただきます。
今後もよろしくお願いいたします。
(satton) 2015/03/18(水) 22:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.