「これはヤバかったな」という遅刻エピソード

下記のマクロを実行すると指定のファイルのデーターを
作業ブックの指定シートに貼り付けが出来るようにしております。
作業ブックでこのマクロを実行するとかなりの時間がかかります(20秒程度)
この時間を短縮できる方法があれば教えてください。
現状のマクロ
Sub データコピペ()
Dim expressionRng, destinationRng
Dim n
'コピー元のファイルを開く
Workbooks.Open ActiveWorkbook.Path & "\" & "FDデータ.xlsx"
Set expressionRng = Workbooks("FDデータ.xlsx").Sheets("Sheet1").Range("$A$1:$OZ$12")
Set destinationRng = ThisWorkbook.Sheets("FDデータ").Range("$A$1:$B$2")
For n = 1 To expressionRng.Rows.Count
destinationRng(n, 1).RowHeight = expressionRng(n, 1).RowHeight
Next
For n = 1 To expressionRng.Columns.Count
destinationRng(1, n).ColumnWidth = expressionRng(1, n).ColumnWidth
Next
expressionRng.Copy destinationRng
Workbooks("FDデータ.xlsx").Close
Kill ActiveWorkbook.Path & "\" & "FDデータ.xlsx"
End Sub
よろしくお願いいたします。

A 回答 (5件)

シートの中に関数式が埋め込まれている場合、効果があります。


マクロの最初と最後に、以下の行を追加してみてください。

Sub データコピペ()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
・・・途中省略・・・
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試してみます。

お礼日時:2024/06/13 10:32

すみません、No3は勘違いです。

無視してください。
    • good
    • 0

下記のように変更してはいかがでしょうか。


expressionRng.Rows.Count → 12
expressionRng.Columns.Count → 416
    • good
    • 0

普通にシートをコピーするのではダメですか?



Sheets(コピー元).Select
Sheets(コピー元).Copy Before:=Workbooks(コピー先).Sheets(1)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
シート全体のコピーでは無くセル指定を希望してます。
もう少し考えてみます。

お礼日時:2024/06/13 10:04

マクロ実行時の非表示設定など調べて欲しい

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
確認してみます。

お礼日時:2024/06/13 10:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A