
【やりたい事】
4つのファイルを1つ転記するたびに
❶ シート①へ転記した後。ファイル名を変更する
a_20250529123939.csv ⇒ 転記済a_20250529123939.csv
※現在は、wb.Close ←コードより抜粋 'csvを閉じる コピー元ファイルを閉じているだけです
❷ 元ファイルはゴミ箱へ移動したい
a_20250529123939.csv⇒ゴミ箱へ移動。※コピー元ファイル
●●●●4回繰り返す●●●●
※ファイルが4個の場合。ファイルは1から4個まで変わります
【マクロ説明】下記画像をご覧ください
以下画像とコードをご覧ください
4つのCSVデータを、別ブックの4つのシートへ1つづつ、順番にコピーするマクロです
※CSVはexcelブックに置き換えて考えて頂いてもOKです。同じです
※4つのCSVデータは、1から4個まで変わります
※CSVデータはエクセルと置き換えてもOKです
【マクロの保存されているファイル】※マクロにて指示するファイル
C:\Users\2020\OneDrive\マクロ\ツール\コントロール.xlsm
【4つのファイル】※コピー元
"C:\Users\user\Documents\web\ダウンロード場所\a_20250529123939.csv"
※シートは1つしかない。名前は不規則
"C:\Users\user\Documents\web\ダウンロード場所\a_20250529123940.csv"
※シートは1つしかない。名前は不規則
"C:\Users\user\Documents\web\ダウンロード場所\a_20250529123941.csv"
※シートは1つしかない。名前は不規則
"C:\Users\user\Documents\web\ダウンロード場所\a_20250529123942.csv"
※シートは1つしかない。名前は不規則
【貼付先】コピー先。下記画像の左上のエクセルファイル
C:\Users\2020\OneDrive\マクロ\ツール\ツール.xlsm
シート①
シート②
シート③
シート④
【ゴミ箱】
C:\Users\2020\OneDrive\マクロ\ツール\ダウンロード場所\ゴミ箱
【コード】本サイト アンサーにてご指南頂きました。動きます
Sub 貼付先ツールへ転記。1から4個まで()
Const Folder_path As String = "C:\Users\2020\OneDrive\マクロ\ツール\ダウンロード場所"
Dim fname As String
'csv
Dim wb As Workbook
'1個目の、CSVファイル名を取得
fname = Dir(Folder_path & "\*.csv")
'貼付先ツール
Dim filepath1 As String
'貼付先ツール
Dim wb1 As Workbook
'貼付先ツール
Dim ws1 As Worksheet
'貼付先ツール
filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(1, 1)
'貼付先ツール。既に開いている。重くならないかチェック
Set wb1 = Workbooks.Open(filepath1)
'貼付先ツール
Dim sno As Long: sno = 0
'貼付先ツール
Dim sname As String
'貼付先ツール
Dim name_tbl As Variant
'貼付先ツール
name_tbl = Array("シート①", "シート②", "シート③", "シート④")
'csv
Do While fname <> ""
Set wb = Workbooks.Open(Folder_path & "\" & fname)
sname = name_tbl(sno)
wb.Worksheets(1).Cells(1, 1).CurrentRegion.Copy
wb1.Worksheets(sname).Cells(1, 1).PasteSpecial Paste:=xlPasteValues
'csvを閉じる
wb.Close
sno = sno + 1
'2個目の、CSVファイル名を取得
fname = Dir()
Loop
Worksheets(name_tbl(0)).Activate
Cells(1, 1).Select
End Sub

No.2ベストアンサー
- 回答日時:
以下のようにしてください。
「ダウンロード場所」の直下に"ゴミ箱"のフォルダーが作成されている前提です。
Sub 貼付先ツールへ転記。1から4個まで()
Const Folder_path As String = "C:\Users\2020\OneDrive\マクロ\ツール\ダウンロード場所"
Dim fname As String
'csv
Dim wb As Workbook
'1個目の、CSVファイル名を取得
fname = Dir(Folder_path & "\*.csv")
'貼付先ツール
Dim filepath1 As String
'貼付先ツール
Dim wb1 As Workbook
'貼付先ツール
Dim ws1 As Worksheet
'貼付先ツール
filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(1, 1)
'貼付先ツール。既に開いている。重くならないかチェック
Set wb1 = Workbooks.Open(filepath1)
'貼付先ツール
Dim sno As Long: sno = 0
'貼付先ツール
Dim sname As String
'貼付先ツール
Dim name_tbl As Variant
'貼付先ツール
name_tbl = Array("シート①", "シート②", "シート③", "シート④")
'csv
Do While fname <> ""
Set wb = Workbooks.Open(Folder_path & "\" & fname)
sname = name_tbl(sno)
wb.Worksheets(1).Cells(1, 1).CurrentRegion.Copy
wb1.Worksheets(sname).Cells(1, 1).PasteSpecial Paste:=xlPasteValues
'csvを閉じる
wb.Close
'ファイル名を変更し、ゴミ箱へ移動する
Dim newPath As String
newPath = Folder_path & "\ゴミ箱\" & "転記済" & fname
Name Folder_path & "\" & fname As newPath
sno = sno + 1
'2個目の、CSVファイル名を取得
fname = Dir()
Loop
Worksheets(name_tbl(0)).Activate
Cells(1, 1).Select
End Sub
-------------------------------------------------
念のためですが、
wb.Worksheets(1).Cells(1, 1).CurrentRegion.Copy
を行うと、データによっては、コピーされないケースがあります。
添付図のようなデータをコピーすると、コピーされるのは緑の部分だけです。(黄色の部分はコピーされません)
このことを承知で使用されるなら特に問題はありませんが、このようなケースがあり得るなら、CurrentRegion.Copyはやめたほうが良いかと思います。

No.1
- 回答日時:
こんばんは
わざわざゴミ箱へ移動しなくても、ファイル名を変えるだけなら、直接 Name ステートメントでできますよ。
ブックを閉じたら、Nameで変更すればよいでしょう。
https://learn.microsoft.com/ja-jp/office/vba/lan …
>※CSVデータはエクセルと置き換えてもOKです
エクセルデータに変更したい場合は、単純なファイル名変更ではありませんので、
・開いたブックを新しい名前を付けて保存(Save As)
・その後、元のcsvファイルを削除(Kill)
という手順にすればよいでしょう。
https://learn.microsoft.com/ja-jp/office/vba/lan …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【マクロ】【画像あり】4つのファイルデータを別ブックの4つのシートへそれぞれコピーしたい
Excel(エクセル)
-
Dir関数のDo Whileステートメントにおける1回目と2回目のファイル名の呼出し方法の違い
Excel(エクセル)
-
【マクロ】【画像あり】4つのファイルデータを1つのエクセルブックにある4つのシートへそれぞれコピー
Excel(エクセル)
-
-
4
条件付書式設定にて、本日の日付を条件として、2行分にセルに色を付けるには?
Excel(エクセル)
-
5
エクセルについて教えてください
Excel(エクセル)
-
6
【マクロ】A列にある、日付(本日:4月17日)を検索し、セルを選択するには?
Excel(エクセル)
-
7
【マクロ】アクティブセルの時間を別ブックから検索。見つかったセルを含めた最終行まで選択したい
Excel(エクセル)
-
8
【マクロ】エラー【#DIV/0!】が発生する場合の回避方法について
Excel(エクセル)
-
9
【マクロ、画像あり】A表かB表かどちらか判断をして、処理をする
Excel(エクセル)
-
10
【マクロ】コードを少しでも、減らする為には
Excel(エクセル)
-
11
【マクロ】【画像あり】❶ブックから別ブックへデータ貼付❷分岐 シート①にデータありシート②へ貼付の件
Excel(エクセル)
-
12
excelVBAについて。
Excel(エクセル)
-
13
VBA_日時のソート
Excel(エクセル)
-
14
【マクロ】findメソッドで見つけたセルと他のセルの範囲指定のやり方について
Excel(エクセル)
-
15
【エクセル】期限アラートについて
Excel(エクセル)
-
16
【マクロ】列を折りたたみ非表示したセルの内、可視セルをコピーするとがエラーとなる
Excel(エクセル)
-
17
勤怠表について ABS、TEXT関数の使い方について教えて下さい
Excel(エクセル)
-
18
【マクロ】左のブックと右のブックにて、同じデータに水色をぬるためには?
Excel(エクセル)
-
19
【関数】=EXACT(a1,b1) a1とb1が空白の場合trueではなく、空白を返すには?
Excel(エクセル)
-
20
至急お願いします!エクセルのフィルターについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
Excelファイルをダブルクリック...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
【マクロ】【画像あり】❶ブック...
-
Excel(2010)のフィルターが保...
-
フォルダ内の複数ファイルから...
-
Excelの警告について
-
Excel起動時に特定のワークシー...
-
エクセルの「ウィンドウ→表示し...
-
同じフォルダへのハイパーリン...
-
エクセルにおける,「ブック」...
-
VBA バックグラウンドで別ブッ...
-
エクセルを開くと最大化などの...
-
EXCELで複数のブックの特定のセ...
-
【マクロ】【画像あり】ファイ...
-
エクセルファイルを開かずにpdf...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
エクセルで参照しているデータ...
-
Excelファイルをダブルクリック...
-
Excelでブックの共有を掛けると...
-
「ブックの共有」を有効にして...
-
Excel(2010)のフィルターが保...
-
Excelの新しい空白のブックを開...
-
同じフォルダへのハイパーリン...
-
フォルダ内の複数ファイルから...
-
エクセルで別ブックをバックグ...
-
別ブックから入力規則でリスト...
-
ブックのピボットを別ブックに...
-
エクセルでウィンドウの枠固定...
-
エクセルにおける,「ブック」...
-
Excelで複数ブックの同一セルに...
-
Excelで指定範囲のデータ...
おすすめ情報