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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

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

マクロ

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

Q&A

解決済

1回答

1358閲覧

VBAでフォルダおよびファイルを開いたりする方法について

kansai5963

総合スコア23

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

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

マクロ

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

0グッド

0クリップ

投稿2021/04/02 02:05

前提・実現したいこと

CSVファイルを選択して特定のシートにCSVファイルの中身をコピーしておりますが、マクロを実行するたびにCSVファイルを開く作業が発生するため、自動化を検討しております。

以下、やりたいこと
①VBAで特定の階層にフォルダの存在を確認
※可能であればエクスプローラのフォルダ参照みたいな画面で操作したい
②フォルダが存在する場合は特定のCSVファイルを開く
※ファイル名称は「yyyymmdd_xxxxxx.csv」となり、yyyynmmddは当日の日付を意味しております。
③フォルダが存在しない場合はフォルダを作成
④開いたCSVファイルの中身をコピーして開いているEXCELマクロファイルの「aaa」というシートに貼り付け

発生している問題・エラーメッセージ

都度該当するCSVファイルを選択する必要があるため手間を省きたい。

該当のソースコード

VBA

1 Dim varFileName As Variant 2 Dim a As Variant 3 4 'CSVファイル選択画面を開く 5 varFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _ 6 Title:="CSVファイルの選択") 7 If varFileName = False Then 8 Exit Sub 9 End If 10 11 'CSVファイルの内容コピー 12 'Sheets.Add After:=ActiveSheet 13 Sheets("aaa").Select 14 Workbooks.Open Filename:=varFileName 15 ActiveSheet.Cells.Copy ThisWorkbook.ActiveSheet.Cells 16 ActiveWorkbook.Close SaveChanges:=False 17

試したこと

フォルダ作成(特定のパスを指定する場合)、ファイルを開く(ファイル名称が固定の場合)、フォルダの存在確認がVBAにて可能であることは理解しておりますが、ネットで調べてもこれといった回答が見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

sazi

2021/04/02 04:00 編集

> ネットで調べてもこれといった回答が見つかりませんでした。 ありふれた内容ですから、回答するにしても、結局検索代行みたいなことなってしまいます。 キーワードを変えるなどして、見つかるまで根気よく行う方が、結局スキルを磨くことに繋がると思います。
jinoji

2021/04/02 09:11

フォルダの選択は手で操作したくて、ファイルの選択は手間を省きたいということ?
guest

回答1

0

ベストアンサー

やりたいことがつかめなかったので、一旦書いてみた。

VBA

1 Dim folderName, fileName 2 3 folderName = "C:\特定\の\階層\" 4 5 fileName = folderName & Format(Date, "yyyymmdd") & "_xxxxxx.csv" 6 7 If Dir(fileName) = "" Then Exit Sub 8 9 With Workbooks.Open(fileName) 10 .Worksheets(1).Cells.Copy Destination:=ThisWorkbook.Worksheets("aaa").Range("A1") 11 .Close SaveChanges:=False 12 End With 13

投稿2021/04/02 11:42

jinoji

総合スコア4585

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問