[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『最新csvファイルのVBAによる取り込みについて』(Node)
こんにちは。Excel初心者です。VBAの言語がわからないのでマクロの記録でcsvファイルをボタン一つでExcelで読み込もう!と試みましたが、同じ名前のファイルでも名前の後ろに_20230715_0912と日にち時間が入るためそのデータしか読み込めません!常に新しいcsvファイルをボタン一つで読み込むにはどうしたらいいのでしょうか、、、?
ちなみにVBAの式はこんな感じになってます。
日にち時間のところを消したらできるかな?と思ってやってみましたが全くダメでした!私では歯が立ちません。皆様方のご助言を賜りたく存じます。
Sub 取り込み()
'
' 取り込み Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\user\Downloads\オンデマンド受講結果_20230715_083646.csv", Destination:= _ Range("$B$3"))
.Name = "オンデマンド受講結果_20230715_083646" .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 = 2 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub
< 使用 Excel:Excel2013、使用 OS:Windows10 >
>Sub 取り込み() > With ActiveSheet.QueryTables.Add(Connection:= _ > "TEXT;C:\Users\user\Downloads\オンデマンド受講結果_20230715_083646.csv", Destination:= _ > Range("$B$3")) > .Name = "オンデマンド受講結果_20230715_083646"
そこの部分をこんな風に書き換える。 ↓ Sub 取り込み() Dim result As String, maxSofar As String
result = Dir("C:\Users\user\Downloads\オンデマンド受講結果*.csv")
Do While result <> "" If result > maxSofar Then maxSofar = result End If result = Dir() Loop
With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;" & maxSofar, Destination:=Range("$B$3")) .Name = maxSofar
以下変更なし。
(半平太) 2023/07/15(土) 15:19:31
.Refresh BackgroundQuery:=False
のところで
「実行時エラー'1004';
外部データ範囲を更新するためのテキストファイルが見つかりません。テキストファイルが移動または名前が変更されていないことを確認し、再度実行してください。」
とメッセージボックスが出てきました。
テキストファイルを確認してみたところ、ファイル→ダウンロード→オンデマンド受講結果2023・・・とありました。
(Node) 2023/07/15(土) 15:46:52
済みません。以下に変更してみてください。
> With ActiveSheet.QueryTables.Add(Connection:= _ > "TEXT;" & maxSofar, Destination:=Range("$B$3")) > .Name = maxSofar > 以下変更なし。
With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\User\Downloads\" & maxSofar, Destination:=Range("$B$3")) .Name = maxSofar ' 以下変更なし。
あと別件ですが、
> .Refresh BackgroundQuery:=False > End With ↓
.Refresh BackgroundQuery:=False .Delete '←これを入れて、毎回Queryテーブルを削除した方がいいらしい End With (テーブルがどんどん溜まってしまうので)
(半平太) 2023/07/15(土) 17:48:30
(Node) 2023/07/15(土) 18:00:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.