次の方法で共有

VBAの処理速度が MAC OS Windowsで動作速度がまったく違う

Anonymous
2020-02-10T02:27:22+00:00

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

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Makapu 92,110 評価のポイント ボランティア モデレーター
    2020-02-11T22:17:59+00:00

    こんにちは。

    VBA の高速化の手法については以下の記事などが参考になると思います。

    ・VBA高速化テクニック

    http://officetanaka.net/excel/vba/speed/

    ・マクロVBAの高速化・速度対策の具体的手順と検証

    https://excel-ubara.com/excelvba4/EXCEL228.html

    ・【excel VBA】スピードアップの簡単な7つの手法!

    http://chiroinu.freehostia.com/wordpress/?p=231

    また、VBA に関するご質問は VBA 専用のフォーラムがありますので、そちらを活用されると良いと思いますよ。

    Msdnフォーラム(VBA)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません