MENU

【ノーコードVBA】フォルダーの、複数ブックのデータを、1枚のシートに転記し、ブックを処理済フォルダーに移動する

エクセルVBAマクロを自動作成する無料アプリです。

例として「フォルダーのブックのデータを、1枚のシートにコピーしてまとめ、ブックを処理済フォルダーに移動する」VBAマクロを作成します。

事例 フォルダー内の販売実績ブックの内容を、累計売上.xlsmに転記する

販売実績ブックのデータが、累計売上.xlsm売上日報シートに、縦方向に転記されました。

転記後、各販売実績.xlsxは、処理済みファイルに移動します。

できました(^^)/

 

アプリの設定

アプリへのリンク
 ⇒フォルダーのデータを、表に貼り、処理済フォルダーに移動

表示されるVBAコード 

アプリで作成されたコードを、VBE画面に貼り付ければ、マクロの完成です。

 

VBAコードを見る

 
Sub デモ_3() 'ファイル間データ転記

Application.ScreenUpdating = False ' 画面描画を停止
Application.DisplayAlerts = False  ' 警告表示を停止
Application.Calculation = xlCalculationManual
Dim セル範囲 As String, 右下セル As String
'◆検索するファイルがあるか事前チェック
If Dir("D:\販売実績\販売実績*.xls*") = "" Then
     MsgBox "D:\販売実績\販売実績*.xls*" & "はありません"
     Exit Sub
End If
'◆マクロのあるブックを記憶
Dim 現在ブック As Workbook
Set 現在ブック = ActiveWorkbook
'◆検索するファイルを設定
Dim 検索ファイル As String, 対象ブック As Workbook
検索ファイル = Dir("D:\販売実績\販売実績*.xls*")
'◆検索開始
Do While 検索ファイル <> ""
     現在ブック.Activate
     '◆既存データの次の行に貼付
     If Range("a2") = "" Then
           Range("a2").Select
     Else
           Range("a2").End(xlDown).Offset(1, 0).Select
     End If
   '◆対象ブックのセル範囲をコピー
     Set 対象ブック = Workbooks.Open("D:\販売実績\" & 検索ファイル)
     対象ブック.Activate
    Sheets("Sheet1").Select
    '◆最終行を取得し、セル範囲を決める
    Range("a2:d2").CurrentRegion.Select
    右下セル = Cells(Selection.Row + Selection.Rows.Count - 1,         Range("d2").Column).Address(False, False)
    セル範囲 = "a2" & ":" & 右下セル

     Range(セル範囲).Select
     Selection.Copy
     '◆マクロのあるブックに貼り付けて、対象ブックを閉じる
     現在ブック.Activate
     Sheets("売上日報").Select
     Selection.PasteSpecial Paste:=xlPasteAll
     Application.CutCopyMode = False
     対象ブック.Close SaveChanges:=False
     '◆処理済みファイルを移動する
     Name "D:\販売実績\" & 検索ファイル As "D:\販売実績\処理済み\" & 検索ファイル
    検索ファイル = Dir()
Loop
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True   ' 警告表示を再開
Application.ScreenUpdating = True  ' 画面描画を再開
End Sub