[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『どの端末でもデスクトップのファイルをリネームしてインポートしたい』(ゆうきや)
お世話になります。
現在、デスクトップに落としてくる「test.dat」を「test.csv」にリネームし、
workシートにインポートするVBAを作成しています。
ご指導を頂き、修正したのですが「?@」の箇所で"実行時エラー1004 外部データ範囲を更新する
ためのテイストファイルが見つかりません。テキストファイルが移動または名前が変更されて
いないことを確認し、再度実行してください" というエラーが出力されてしまいます。
解決法をご教授して頂きたく投稿させて頂きます。
以下にVBAを記します。
Application.ScreenUpdating = False Application.Calculation = xlCalculationManual
Const OLD_EXTENSION As String = "test.dat" Const NEW_EXTENSION As String = "test.csv"
Dim SAVE_DIR As String
Dim wsh As Object
Set wsh = CreateObject("Wscript.Shell")
SAVE_DIR = wsh.SpecialFolders("Desktop") Set wsh = Nothing
Dim OldFName As String
Dim NewFName As String
OldFName = Dir(SAVE_DIR & "*" & OLD_EXTENSION)
Do While Len(OldFName) <> 0
OldFName = SAVE_DIR & OldFName NewFName = _ Left(OldFName, Len(OldFName) - Len(OLD_EXTENSION)) & NEW_EXTENSION
FileCopy OldFName, NewFName Kill OldFName OldFName = Dir() Loop
Range("A2", Cells(Rows.Count, 1).End(xlDown)).EntireRow.Delete
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & SAVE_DIR & "test.csv", Destination:=Range("$A$2"))
.Name = "test" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells .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 = True .TextFileSpaceDelimiter = True .TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False ← ?@ここでエラーが出て止まってしまいます
End With
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "work"
Application.Goto Sheets("work").Range("A1")
・
・
・
よろしく願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
リンクを貼っていただけるとよいかもしれません。
>OldFName = Dir(SAVE_DIR & "*" & OLD_EXTENSION)
ここがおかしい気がしますが? *でなく \ では?
他にも、拡張子を変える必要があるのか?
Do While〜loopで何をしようとしているのか?
とりあえず、ステップ実行で期待通り動いているか確認されてはどうでしょうか。
(マナ) 2017/05/10(水) 20:32
ならば
>Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "work"
これをインポートする前に持ってこないといけないのでは?
(マナ) 2017/05/10(水) 21:53
ご返信、ありがとうございます。
いろいろとトライしていて
「SAVE_DIR = wsh.SpecialFolders("Desktop")」のあとに「& "\"」を付けて実行した結果
エラーなく処理が完結いたしました。
ご教授、ありがとうございました。
(ゆうきや) 2017/05/12(金) 10:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.