VBAで55万件のデータファイルを取り込んで処理しています
MACとWindowsでの処理の速さが5倍くらい違います
普段はMACで作業をしていて、55万件の処理があるときはWindowsを使っています、MACで速くVBAの処理をしたいと考えています
わかる方、同じような経験がある方がいたらアドバイスよろしくお願いします。
下記にプログラムを貼り付けます
Sub ファイルデータ取得()
Dim vFName As Variant
Dim wbkFrom As Workbook
Dim rngFrom As Range
Dim rngTo As Range
vFName = Application.GetOpenFilename()
If vFName = False Then Exit Sub
Set wbkFrom = Workbooks.Open(vFName)
With wbkFrom.Worksheets(1)
Set rngFrom = .Range(.Cells(2, "A"), .Cells(.Rows.Count, "A").End(xlUp)).Resize(, 2)
End With
With ThisWorkbook.Worksheets(1)
Set rngTo = .Cells(.Rows.Count, "D").End(xlUp) _
.Offset(1).Resize(rngFrom.Rows.Count, rngFrom.Columns.Count)
End With
rngTo.Value = rngFrom.Value
wbkFrom.Close
MsgBox "ファイルを取り込みました"
End Sub
Sub フィルタをしてデータ移動()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
ActiveSheet.Range("$A$2:$M$834402").AutoFilter Field:=7, Criteria1:="=o", _
Operator:=xlOr, Criteria2:="="
Range("J3:K3").Select
Range(Selection, Selection.End(xlDown)).Copy
Worksheets(2).Range("B" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveSheet.Range("$A$2:$M$834402").AutoFilter Field:=7
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
MsgBox "シート2に値を移動したよーーーーーーーーーーーーーーーー"
End Sub
Sub ←左に移動()
Dim rngFrom As Range
Dim rngTo As Range
Set rngFrom = Range(Cells(3, "D"), Cells(Rows.Count, "D").End(xlUp)).Resize(, 2)
Set rngTo = Cells(3, "A").Resize(rngFrom.Rows.Count, rngFrom.Columns.Count)
rngTo.Value = rngFrom.Value
Range(Cells(3, "D"), Cells(Rows.Count, "D").End(xlUp)).Resize(, 2).ClearContents
MsgBox "左にデータを移動したぞーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー"
End Sub