質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

4456閲覧

【VBA】desktopにあるcsvファイルの読み込み

peace_m_aaa

総合スコア21

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2022/06/21 16:25

エクセル/シートの中にボタンを作り
ボタンにsheet/VBAをon_clickで連動させて
事前に用意しているcsvファイルを毎回まっさらな状態で読み込むという動作をしたいです。
サンプルをお借りしたのですが
.Refresh BackgroundQuery:=False
の所で毎回エラーが出ます。

何を用いたらcsv内データをシートに転記できるかご教授いただけますでしょうか。
-----
エラー内容
実行時エラー1004
外部データ範囲を更新するためのテキストファイルが見つかりません。
テキストファイルが移動または名前が変更されていないことを確認し、再度実行してください。
[終了][デバッグ]
-----
Private Sub CommandButton1_Click()
Const CSV_FILE As String = "C:\Users\user\Desktop\test\0001.csv"
Const CSV_SHEET_NAME As String = "csv"

Dim sheet As Worksheet
Dim csvSheet As Worksheet

For Each sheet In ThisWorkbook.Worksheets
If sheet.Name = CSV_SHEET_NAME Then
Application.DisplayAlerts = False
Worksheets(CSV_SHEET_NAME).Delete
Application.DisplayAlerts = True
End If
Next

Set csvSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
csvSheet.Name = "csv"

With csvSheet.QueryTables.Add(Connection:="TEXT;" & CSV_FILE, Destination:=Sheets("csv").Range("B2"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.TextFileColumnDataTypes = Array(xlTextFormat, xlTextFormat, xlTextFormat)
.TextFilePlatform = 932
.TextFileStartRow = 1
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery:=False
.Delete

End With
End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2022/06/21 16:54

コードは「コードの挿入」で記入しましょう。
guest

回答1

0

ベストアンサー

Const CSV_FILE As String = "C:\Users\user\Desktop\test\0001.csv"
で示されるC:\Users\user\Desktop\test\0001.csv が存在しないのでエラーになります。
一般的にC:\Users\user\は、C:\Users\xxx\ となります。(xxxは実際のユーザー名)
例えば、ユーザー名がyamamotoなら
C:\Users\yamamoto\ となります。
あなたのデスクトップの実際のフォルダ名を確認してください。
そして、そのフォルダ名に変えてから、マクロを実行してください。

もし、上記でもうまくいかないなら
C:の直下に0001.csvを格納し、
Const CSV_FILE As String = "C:\0001.csv"
としてマクロを実行してください。

投稿2022/06/22 01:03

tatsu99

総合スコア5436

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

peace_m_aaa

2022/06/22 15:45 編集

ありがとうございます。 仰る通りユーザーの所を見過ごしてしまっておりました。 .Refresh BackgroundQuery:=Falseの指定がおかしいのかと思ってばかりいたので 初歩的なところに気づけなかったです。 あとdesktopはspecialで指定し直したらエラーもなくなりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問