エクセル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